자바 조건문

 

switch - case 조건문

switch - case문은 if - else문과 비슷한 조건 제어문이다.

하지만 switch문은 if문처럼 조건식이 true일 경우에 실행문을 실행하는 것이 아닌

변수의 값에 따라 실행문이 선택된다.

 

조건식의 변수의 값에 따라 해당  case위치로 이동해서 break를 만날 때 까지 코드를 실행한다.

 

if문은 조건식의 결과가 true, false 두 가지밖에 없기 때문에 경우의 수가 많아질수록 else - if를 반복적으로 추가해줘야하는 반면에 switch문은 변수의 값에 따라서 실행문이 결정되기 때문에 if문보다 간결하게 코드를 작성할 수 있다.

 

switch (조건식) {

 case 값 1:
  실행문1;
   break;

 case 값 2:
  실행문2;
   break;

 ...
 ...

 default:
  실행문;

}

 

default는 조건식이 모든 case가 아닐때 실행한다.

 

 


 

case에 사용 가능한 변수 타입

  • 정수 : byte, short, int, long, char
  • 문자열 :  String 
  • 열거형 자료 타입(enum)

 

정수를 사용한 swtich문 

int n = 17;

switch (n % 2) { 

case 0:

System.out.println("짝수");

break;

case 1:

System.out.println("홀수");

break;

}

실행 결과 =

홀수

 

*switch문에서는 실수 float, double을 사용할 수 없다.

double x = 1.0;

switch (x) {

case 1.0:

break;

case 2.0:

break;

 

 

문자열을 사용한 swtich문 

String time = "점심";

 

switch (time) {

case "아침":

System.out.println("breakfast");

break;

case "점심":

System.out.println("lunch");

break;

case "저녁":

System.out.println("dinner");

break;

default:

System.out.println("snack");

}

실행 결과 =

lunch

 

*switch문에서는 boolean(==)을 사용할 수 없다.

 

 

enum 타입을 사용한 switch문

열거형 자료 타입인 enum(enumeration type)은 한정된 값(상수)들만 갖는 데이터 타입이다.

public enum Season {

SPRING, SUMMER, FALL, WINTER;

}

이런식으로 개발자가 정의하여 타입을 만든 것이 enum이다.

 

Season s = Season.WINTER;

switch (s) {

case SPRING:

System.out.println("봄");

break;

case SUMMER:

System.out.println("여름");

break;

case FALL:

System.out.println("가을");

break;

case WINTER:

System.out.println("겨울");

break; 

(enum은 따로 정리를 할 예정이다.)

 

 

간단한 가위 바위 보 게임 프로그램 만들기

 

가위 - 0, 바위 - 1, 보 - 2

 

컴퓨터의 가위, 바위, 보는 난수로 만들고, (Random)

사용자의 가위, 바위, 보는 사용자에게 입력받음. (Scanner)

 

조건문을 사용하여 누가 이겼는 지 결과 출력하기

(computer : user)

 

 

내가 쓴 코드인데 길고 정신없다.

 

(조건문)

컴퓨터와 유저가 낸 값이 같은 경우에 "비겼습니다." 출력.

 

(조건문)

유저가 낸 값과 컴퓨터가 낸 값의 경우를 비교하여 유저가 이겼는지 컴퓨터가 이겼는지를 출력.

 

값이 같은 경우의 조건문은 따로 해주고, 나머지 경우는 if else문으로 작성해주었다.

 

 

방법1

(조건문)

컴퓨터와 유저가 낸 값이 같은 경우와 다른 경우를 if - else문으로 한꺼번에 작성.

 

 

방법2

(조건문)

내가 처음에 쓴 코드와 비슷.

 

 

방법3

(조건문)

조건문에 논리연산자를 사용해서 작성.  (확실히 코드가 줄어들었음.)

 

 

방법4

int 타입의 diff 변수에 user - computer를 저장.

user - computer == 0 일 경우에 "비겼습니다." 출력.

user - computer == - 2 또는 user - computer == 1 이면 "user가 이겼습니다" 출력.

그 외는 "computer가 이겼습니다." 출력.

 

user가 1(바위)를 내고 computer가 0(가위)를 낼 경우

1 - 0 = 1 이기때문에 user가 이김.

 

 

실행결과1
실행결과2
실행결과3

 

성적 처리 프로그램

 

Scanner로 입력값을 받고, if문으로 출력해보는 간단한 성적 처리 프로그램 만들기.

 

Scanner 클래스를 사용해서 세 과목(JAVA, SQL, HTML)의 점수를 입력받고 변수에 저장한다.

 

 

세 과목의 총점과 평균을 계산하고 출력한다.

 

total 변수의 타입이 int이고, 3도 int이기 때문에 3을 3.0으로 바꿔주거나, (double average = total / 3.0;)

total 변수 앞에 double 타입을 캐스팅하여 total을 실수로 바꿔준다.(double average = (double)total / 3;)

 

 

if문을 사용해서 학점(A, B, C, D, F)를 출력한다.

 

세 과목의 평균이 90 이상이거나 같을때 "A" 출력.

세 과목의 평균이 80 이상이거나 같을때 "B" 출력.

세 과목의 평균이 70 이상이거나 같을때 "C" 출력.

세 과목의 평균이 60 이상이거나 같을때 "D" 출력.

위 네개의 조건에 맞지 않으면(else) "F" 출력.

 

실행결과

+ Recent posts