if문의 구조
if (조건식1) {
조건식 1이 참일때 수행
} else if (조건식2) {
조건식 2가 참일때 수행
} else {
위의 조건식들이 모두 거짓일때 수행
}
else if 문은 여러번 쓸 수 있으며, 조건이 하나일 때는 else if와 else문은 생략 가능하다.
public class Main {
public static void main(String[] args) {
int score = 85;
// 점수에 따라 등급 출력하기
if(score >= 90) {
System.out.println("A");
} else if(score >= 80) {
System.out.println("B");
} else if(score >= 70) {
System.out.println("C");
} else {
System.out.println("D");
}
}
}
위의 score값이 85이고, 두 번째
score >= 80조건식을 만족하므로 결과는 "B"가 된다.score값이 90점 이상일때는 첫번째 if문을 수행하고 그 아래의 else if나 else문은 수행하지 않으므로 두 번째 조건식을
score>=80 && score <90으로 적을 필요가 없다. 마찬가지로 세 번째 조건식도score >= 70이 되는 것이다.
switch문은 경우의 수가 변수에 담긴 값의 등가비교로 인해 나뉠 때 사용한다.
switch문은 경우의 수를 나누어 선택한다기 보다는, 어디로 진입할지 시작점을 선택하는 것이다. 따라서 진입한 case문 아래에 case문장이 더 있다면 그 문장들도 실행한다. 따라서 각 케이스들을 나누어 주기 위해 적절히 break; 를 사용해야 한다.
switch문의 구조
switch(변수) {
case 값1:
변수에 담긴 값이 값1 일때 수행할 문장
break;
case 값2:
변수에 담긴 값이 값2 일때 수행할 문장
break;
...
default:
위의 값들이 아닐때 수행할 문장
}
public class Main {
public static void main(String[] args) {
int month = 5;
switch(month) {
case 3:
case 4:
case 5:
System.out.println("봄");
break;
case 6:
case 7:
case 8:
System.out.println("여름");
break;
case 9:
case 10:
case 11:
System.out.println("가을");
break;
case 12:
case 1:
case 2:
System.out.println("겨울");
break;
}
}
}
위의 코드에서 month의 값은 5이므로
case 5의 문장으로 진입하고 "봄"을 출력할 것이다. 그 후break;를 만나 종료될 것이다.만약 month의 값을 9로 바꿨다고 가정해보자. 그럼
case 9의 문장으로 진입하고case 10과case 11을 지나 "가을"을 출력하고break;를 만나 종료될 것이다. 이렇게 각 case마다break;를 적절하게 넣어주거나 의도적으로 생략해서 코드를 짜는것이 중요하다.