조건문?
조건문은 if, else if, else 그리고 swtich 4가지가 있다.
내가 원하는 값에 도달하였을 때 실행할 코드를 작성할 수 있다.
예를 들어 ‘체력이 40이하면 포션을 사용’ 등의 조건을 정할 수 있다.
● if문
if의 뜻처럼 ‘만약’ 이라는 의미를 가지고 있는 명령어이다.
조건식이 참이면 실행 코드를 실행하고, 아니면 실행시키지 않고 넘어간다
if(10 > 2){ // 10이 2보다 클 경우 실행하라
System.out.println("10은 2보다 큽니다."); // 참일 경우 실행할 코드
}
위처럼 사용할 수 있다.
실행하고 싶은 코드는 {} 안에 넣어서 사용할 수 있다.
만약 실행할 코드가 한 줄인 경우 {} 없이 사용할 수 있다.
if(10 > 2)
System.out.println("10은 2보다 큽니다."); // 참일 경우 실행할 코드
● else if문
else if의 경우 뜻처럼 ‘다른’이라는 의미를 가지고 있는 명령어 이다.
따라서 if문 밑에 쓸 수 있다.
int a = 2, b = 5;
if(a > b) // a가 b보다 클 경우 실행
System.out.println("a는 b보다 큽니다.");
else if(a < b) // a가 b보다 작을 경우 실행
System.out.println("a는 b보다 작습니다.");
위처럼 else if를 사용할 수 있습니다.
여기서 if를 두 번 사용해도 되겠다고 생각할 수 있다.
물론 위 예시에서는 가능하지만 효율적이지 않다.
만약 성적을 받아 점수를 매긴다고 가정하면 아래처럼 해야 한다.
int score;
if(score > 90)
System.out.println("A학점입니다.");
if(score <= 90 && score > 80) // socre <= 90을 추가해야 함
System.out.println("B학점입니다.");
...
위처럼 범위를 지정해 줘야 한다.
만약 범위를 지정하지 않으면 100점일 경우
“A 학점입니다.
B 학점입니다.
…”
전부 출력 되기 때문이다.
그래서 else if를 사용하여 아래처럼 코딩할 수 있다.
int score;
if(score > 90)
System.out.println("A학점입니다.");
else if(score > 80) // else if에 socore <= 90 이 포함 되어 있음
System.out.println("B학점입니다.");
...
● else문
else문은 조건식이 없는 명령어로 나머지 전부를 의미한다.
int a = 2, b = 5;
if(a > b) // a가 b보다 클 경우 실행
System.out.println("a는 b보다 큽니다.");
else if(a < b) // a가 b보다 작을 경우 실행
System.out.println("a는 b보다 작습니다.");
else // a > b && a < b 를 제외한 나머지
System.out.println("a와 b는 같습니다.");
위처럼 if 와 else if 그리고 else를 사용하여 코드를 짤 수 있다.
● switch문
switch문은 이름과 같이 case에 적합하면 마치 스위치를 킨 것처럼 실행하는 명령어이다.
int a = 2;
switch (a) {
case 1:
System.out.println("1입니다."); // a == 1일 경우 실행
break; // 스위치문을 탈출하는 명령어
case 2:
System.out.println("2입니다.");
break;
default:
System.out.println("잘못 입력했습니다");
break;
}
=> 2입니다.
위처럼 사용할 수 있다.
여기서 case 1: 에서 1이 조건이고
a == 1 일 경우 실행한다.
즉 참 거짓을 판별한다.
따라서 여기에는 char 과 String을 사용할 수 있다.
또한 위처럼 사용 가능하다.
여기서 주의할 점은 break를 넣어줘야 한다는 것이다.
break란 제어문(조건문, 반복문)을 탈출하게 하는 명령어이다.
만약 break를 넣지 않았을 경우 조건에 맞지 않으나 전부 출력될 수 있다.