본문 바로가기
JAVA

[JAVA] 자바 문장 - 분기문 (if 문, if-else 문, switch 문)

by Amy IT 2022. 5. 18.

자바언어에서 사용하는 문장의 종류와 사용법을 알아보겠습니다.

 

실행문 순차문  
제어문 분기문 if, if-else, 다중 if-else, switch
반복문 for, while, do-while
비실행문 주석문  

 

순차문은 코드가 위에서 아래로 순차적으로 실행되는 문을 의미합니다. 제어문은 순차적으로 실행되지 않고 조건에 따라 실행 문장이 결정되는 문을 말합니다. 이번 글에서는 제어문 중, 특정 조건에 따라 실행할 문이 정해지는 분기문에 대해 알아보겠습니다.

 

 

1. 단일 if 문

 

주어진 조건을 만족하는 경우에만 특정 문장을 수행하도록 제어합니다. 

문장1;
if(조건식) {
      문장2;
}
문장3;

문장1을 수행하고, if문의 조건식을 검사하여 true인 경우 문장2를 수행한 후 최종적으로 문장3을 수행하게 됩니다. false인 경우에는 문장2를 수행하지 않고 바로 문장3을 수행합니다. 즉, 조건식에 따라 문장2의 실행 여부를 결정합니다.

 

단일 if문을 사용하여 홀수/짝수 결과값을 출력하는 프로그램입니다.

int num = 100;
int result = num%2;
String mesg = "홀수";
if (result==0) {
	mesg = "짝수";
}
System.out.println(mesg);

mesg 변수에 초기값을 홀수로 주되, 2로 나눈 나머지가 0인 경우, 즉 짝수인 경우 if문을 이용해 mesg 변수를 짝수로 바꿉니다. 홀수인 경우는 if문의 조건식을 만족하지 않으므로 값을 변경하지 않고 홀수로 출력하게 됩니다.

 

 

 

2. if-else 문

 

조건에 따라 실행되어야 하는 문장이 다른 경우에 사용합니다. 

문장1;
if(조건식) {
      문장2;
} else {
      문장3;
}
문장4;

문장1을 수행하고, if문의 조건식을 검사하여 true인 경우 문장2를 수행한 후 문장4를 수행합니다. false인 경우에는 문장3을 수행한 후 문장4를 수행합니다. 

 

이번에는 if-else문을 사용하여 홀수/짝수 결과값을 출력하는 프로그램입니다.

int num2 = 100;
int result = num2%2;
String mesg;
if (result == 0) {
	mesg = "짝수";  
} else {
	mesg = "홀수";
}
System.out.println(mesg);

mesg 변수를 선언한 후, result 값에 따라 "짝수" 혹은 "홀수" 초기값을 주게 됩니다. 

 

 

 

3. 다중 if-else 문

 

조건을 여러번 비교해야 할 때 사용합니다. 

if(조건식1) {
      문장1;
} else if(조건식2){
      문장2;
} else if(조건식3){
      문장3;
} else {
      문장n;
}

조건식1이 true이면 문장1을 수행합니다. false이면 조건식2를 검사하고 true인 경우 문장2를 수행합니다. false이면 조건식3을 검사하고 true인 경우 문장3을 수행합니다. false이면 문장n을 수행합니다. 

 

점수를 다중 비교하여 등급을 출력하는 프로그램입니다.

int score = 77;
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("F");
}

세 번째 조건식인 score 70 이상을 만족하여 C를 출력하게 됩니다. 

 

 

 

4. switch 문

 

다중 if-else문과 비슷한 용도로 사용되지만, switch문은 반드시 일치하는 값을 비교할 때 사용 가능합니다. 

switch(표현식) {
      case 값1 : 문장1; break;
      case 값2 : 문장2; break;
      ...
      case 값n : 문장n; break;
      default : 문장n+1;
}

표현식에는 byte, short, int, char, String, enum 데이터 형만 지정 가능합니다. 일치하는 case문이 없는 경우에는 default문이 수행됩니다. break문을 만나면 switch문을 빠져나옵니다. 만약 break문이 없는 case문이 실행되면 break문을 만날 때까지 다음 case문을 실행합니다. 

 

int num = 20;
switch (num) {
case 10: System.out.println("10"); break;
case 20: System.out.println("20"); break;
case 30: System.out.println("30"); break;
case 40: System.out.println("40"); break;
default: System.out.println("default");
}

case 20과 일치하여 20을 출력하는 문장이 수행된 후 break문을 만나 switch문을 빠져나옵니다. 

 

 

이상으로 제어문 중 분기문에 대해 정리해 보았습니다. 다음 글에서 이어서 제어문 중 반복문에 대해 알아보겠습니다.

 

 

댓글