본문 바로가기
JAVA

JAVA - 조건문(if문, switch문)

by 스노위13 2022. 6. 8.

1. if문
1) if문
if문은 괄호 안의 조건식의 결과에 따라 중괄호 안의 실행문을 실행할지 말지가 결정된다. 
조건식이 true면 블록을 실행하고 false면 실행하지 않는다. 

if문은 아래와 같이 사용한다.

1
2
3
4
5
6
7
int price = 30000;
int myMoney = 10000;
 
if(myMoney < price) {
    System.out.println("돈이 부족합니다");
}
 
cs

* 중괄호 안의 실행해야 할 문장이 하나밖에 없다면 중괄호를 생략할 수도 있지만 가독성과 버그 우려 때문에 되도록이면 중괄호를 사용하도록 한다.

이에 대한 결과는 다음과 같다

if의 조건이 true이기 때문에 "돈이 부족합니다"가 출력되었다. 

2) if-else문

if-else문은 if문에 else블록을 추가하는 것이다. if문의 조건식이 true이면 if문의 블록이 실행되고, 조건식이 false면 else 블록이 실행된다. 

1
2
3
4
5
6
7
8
int score = 80;
 
if(score >= 90) {
System.out.println("등급 : A");
}else {
System.out.println("등급 : B");
}
 
cs

이에 대한 결과는 다음과 같다.

if의 조건이 false이기 때문에 "등급 : B"이 출력되었다.

3)if-else if-else문

if-else if-else문은 if-else문에 else if로 조건을 더 추가하는 것이다. else if문의 수는 제한이 없고 여러 개의 조건식 중에서 true인 블록만 실행한 후에 전체 if문을 벗어난다. 만약 모든 조건이 false라면 else 블록을 실행하고 if문을 벗어난다.

1
2
3
4
5
6
7
8
9
10
int intNum = 1;
 
if(intNum < 0) {
    System.out.println("intVal가 0보다 작다.");
else if (intNum == 0) {
    System.out.println("intVal가 0이다.");
else {
    System.out.println("intVal가 0보다 크다");
}
 
cs

이에 대한 결과는 다음과 같다.

if문의 조건이 모두 false이기 때문에 "intVal가 0보다 크다"가 출력된다. 

4) 중첩 if문

if문 블록 내부에는 또다른 if문을 넣을 수 있으며, 갯수 상관 없이 넣을 수 있다. 
if문, switch문, for문, while문, do-while문은 서로 중첩이 가능하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
String name ="길동이";
String phone ="01012341234";
int age = 20;
 
if (!name.isEmpty()) {
    System.out.println("입력 확인");
    if( (phone.length() == 10|| (phone.length() == 11)) {
       System.out.println("입력 확인");
       if (age >= 14) {
           System.out.println("입력 확인");
       }
    }
else System.out.println("정보를 모두 입력해 주세요.");
 
 
cs

이에 대한 결과는 다음과 같다.

각각의 if문이 true이기 때문에 "입력 확인"이 출력되고 안에 있는 if문이 실행되었기 때문에 총 3개의 "입력 확인"이 출력되었다. 중첩if문 등을 사용할 때는 실행 흐름과 중괄호를 잘못 사용하지 않도록 주의한다. 

2. switch문

switch문은 if문과 마찬가지로 조건에 따라 제어된다. 
if문이 조건식이 true일 때 실행문을 실행한다면 switch문은 변수가 어떤 값을 갖느냐에 따라 실행문을 선택하여 실행한다. 
그렇기 때문에 경우의 수가 많아서 else-if를 반복적으로 추가해야 하는 경우에는 switch문을 사용하는 것이 간결하다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
int num = 3;
        
switch(num) {
case 0:
    System.out.println("num은 0입니다.");
    break;
case 1:
    System.out.println("num은 1입니다.");
    break;
case 2:
    System.out.println("num은 2입니다.");
    break;
case 3:
    System.out.println("num은 3입니다.");
    break;
default:
    System.out.println("num은 3보다 큰 수입니다.");
}
 
cs

이에 대한 결과는 다음과 같다.

int num은 3이기 때문에 case 3이 선택되었고 그 결과값으로 "num은 3입니다."가 출력되었다. 각각의 case 끝에 break를 써야하는 이유는 다음 case문을 실행하지 않고 switch문을 빠져나가기 위해서다. 만약 break가 없다면 값과 상관 없이 그 이후에 있는 case도 연달아서 실행되기 때문에 break를 꼭 쓰도록 한다.

댓글