인프런/김영한 자바

[김영한의 자바 입문] - 4. 조건문 & 반복

sson-coding 2025. 8. 28. 15:08

본 글에 사용된 코드와 이미지의 일부는 김영한 님의 『김영한의 자바 입문』 강의를 참조하여 발췌·활용하였습니다.


조건문

조건문이란 특정 조건에 따라서 다른 코드를 실행하는 것을 말한다.

조건문에는 if문 , switch문 이 있다.

먼저 if 문에 대해 알아보자.

if 문

if 문은 특정 조건이 참인지 확인하고, 그 조건이 참(true) 인 경우 특정 코드 블록을 실행한다.

if (condition) {
 // 조건이 참일 때 실행되는 코드
}

추가로 if 문 다음에 실행할 명령이 하나만 있을 경우에는 { } 중괄호를 생략할 수 있다. 하지만 가독성 과 유지보수성 때문이라도 중괄호를 사용하는 것이 좋다.

else 문

else 문은 if 문에서 만족하는 조건이 없을 때 실행하는 코드를 제공한다.

if (condition) {
 // 조건이 참일 때 실행되는 코드
} else {
 // 만족하는 조건이 없을 때 실행되는 코드
}

else if 문

else if 문은 if 문의 조건이 거짓일 때, 다음 조건을 검사한다. 앞선 if 문이 참이라면 else if 문을 실행하지 않는다.

마지막 else 는 생략할 수 있다.

if (condition1) {
 // 조건1이 참일 때 실행되는 코드
} else if (condition2) {
 // 조건1이 거짓이고, 조건2가 참일 때 실행되는 코드
} else if (condition3) {
 // 조건2이 거짓이고, 조건3이 참일 때 실행되는 코드
} else {
 // 모든 조건이 거짓일 때 실행되는 코드
}

switch 문

switch 문은 if 문을 조금 더 편리하게 사용할 수 있는 기능이다. 조건식에 해당하는 특정 값으로 실행할 코드를 선택한다.

switch (조건식) {
 case value1:
 // 조건식의 결과 값이 value1일 때 실행되는 코드
 break;
 case value2:
 // 조건식의 결과 값이 value2일 때 실행되는 코드
 break;
 default:
 // 조건식의 결과 값이 위의 어떤 값에도 해당하지 않을 때 실행되는 코드
 }

특징으로는 아래와 같다.

  • 조건식의 결과 값이 어떤 case 의 값과 일치하면 해당 case 의 코드를 실행한다.
  • break 문은 현재 실행 중인 코드를 끝내고 switch 문을 빠져나가게 한다.
  • break 문이 없으면, 일치하는 case 이후의 모든 case 코드들이 순서대로 실행된다.
  • default 는 조건식의 결과값이 모든 case 의 값과 일치하지 않을 때 실행된다.

switch 문 - 자바 14

자바 14부터는 새로운 switch 문이 정식 도입되었다.

public class Switch3 {
 public static void main(String[] args) {
     //grade 1:1000, 2:2000, 3:3000, 나머지: 500
     int grade = 2;
     int coupon = switch (grade) {
         case 1 -> 1000;
         case 2 -> 2000;
         case 3 -> 3000;
         default -> 500;
        };
     System.out.println("발급받은 쿠폰 " + coupon);
 }
}

기존 switch 문과 차이는 다음과 같다.

  • → 를 사용한다.
  • 선택된 데이터를 반환할 수 있다.

삼항 연산자

if 문을 사용할 때 , 단순히 참과 거짓에 따라 특정 값을 구하는 경우가 있다.

public class CondOp1 {
 public static void main(String[] args) {
     int age = 18;
     String status;
     if (age >= 18) {
         status = "성인";
     } else {
         status = "미성년자";
     }
     System.out.println("age = " + age + " status = " + status);
 }
}

이 예제는 status 변수의 값이 달라지는 것을 알 수 있다.

이렇게 단순히 참과 거짓에 따라서 특정 값을 구하는 경우 삼항 연산자(조건 연산자) 라고 불리는 ? : 연산자를 사용할 수 있다.

public class CondOp2 {
 public static void main(String[] args) {
     int age = 18;
     String status = (age >= 18) ? "성인" : "미성년자";
     System.out.println("age = " + age + " status = " + status);
 }
}

삼항 연산자는 (조건) ? 참 표현식 : 거짓 표현식 으로 표현할 수 있다.


반복문

반복문은 이름처럼 특정 코드를 반복해서 실행할 때 사용한다. 반복문에는 while, do-while, for 이 있다.

while 문

while 문은 조건에 따라 코드를 반복해서 실행할 때 사용한다.

while (조건식) {
 // 코드
}

조건식을 확인하고, 참이면 코드를 실행, 거짓이면 while문을 벗어난다.

do-while 문

do-while 문은 조건에 상관없이 무조건 한 번은 코드를 실행한다.

do {
 // 코드
} while (조건식);

break, continue

breadk 는 반복문을 즉시 종료하고 나간다.

continue 는 반복문의 나머지 부분을 건너뛰고 다음 반복으로 진행하는데 사용된다.

while(조건식) {
 코드1;
 break;//즉시 while문 종료로 이동한다.
 코드2;
}
//while문 종료
---------------------------------------
while(조건식) {
 코드1;
 continue;//즉시 조건식으로 이동한다.
 코드2;
}

for 문

for 문은 주로 반복 횟수가 정해져 있을 때 사용한다.

for (1.초기식; 2.조건식; 4.증감식) {
 // 3.코드
}

for 문의 실행 순서는 다음과 같다.

  1. 초기식이 실행된다.
  2. 조건식을 검증한다.
    1. 참이면 코드 실행
    2. 거짓이면 for 문을 빠져 나감
  3. 코드를 실행한다.
  4. 코드가 종료되면 증감식을 실행한다.
  5. 다시 순서2 부터 시작한다.

초기식에 int i =1 이라고 썼을 때, 변수 i 를 카운터 변수라고 부른다.

for 문에서 초기식,조건식,증감식은 선택이고, 모두 생략이 가능하다. 생략이 가능하지만 각 영역을 구분하는 세미콜론(;) 은 유지해야 한다.

for (;;) {
 // 코드
}
-> 무한 반복하는 코드