제어문 - JAVA

제어문(control statement)

프로그램의 실행흐름을 제어하는 것

  • 조건문(conditional statement)
  • 반복문(iterative statement)
  • 분기문(branch statement)

 


 

조건문

  • 조건식에 따라 프로그램의 흐름 제러
  • 조건식의 결과에 따라 블록 실행 여부가 결정
  • Java는 ifswitch 두가지 조건문 지원

 

1️⃣ if 문

if( 조건식 ){
 실행문;
}
  • 조건식이 true 이면 실행문을 실행하고 false 이면 실행하지 않음
  • 조건식(condition): 조건식에는 비교 연산식, 변수, 논리값 가능

 

2️⃣ if-else문

if(조건식){ // 조건식이 true라면
    실행문;
}else { // 조건식이 false라면
    실행문;
}
  • 실행문은 단일/복합 실행문 모두 가능
    • 복합 실행문 사용시 중괄호 사용
  • 조건식의 true, false에 따라 다른 실행문 수행
⚠️ else는 가장 가까운 if와 매칭됨에 주의

 

3️⃣ 중첩 if 문

if(조건식1){
    if(조건식2){
        ...
    }else{
        ...
    }
}else{
    ...
}1
  • if문을 다른 if문 안에 포함시킬 수 있음

 

4️⃣ 다중 if-else 문

if(조건식1){
  실행문;
}else if(조건식2){
  실행문;
 ...
}else{
  실행문;
}
  • 다중 if문을 만들 때 사용

 

5️⃣ switch문

switch(변수){
    case 값1:
        실행문
        break;
    ...
    default:
        실행문
}
  • switch 문
    • 괄호 안의 변수값에 따라 case로 가서 실행문을 실행
    • 변수값과 동일한 값을 갖는 case가 없으면 default로 가서 실행문을 실행
    • default생략가능
  • break
    • 다음 case를 실행하지 않고 switch 문을 빠져나갈 때 사용
    • break가 없다면 다음 case가 연달아 실행
    • break문 생략: 여러 case레이블 매칭시 유용
  • 변수
    • byte, short, int , char, 열거형, String타입이 가능
  • 여러 실행문 중 조건을 만족하는 하나만을 수행
    • 모든 조건이 비교되는 if-else-if문과의 차이점
⚠️변수는 double 형은 들어갈 수 없음

 

6️⃣ switch + 표현식 사용 (java12~)

switch(변수){
    case '값1','값2' -> { 실행문 } // 값1 또는 값2인 경우
    case '값3','값4' ->  실행문    // 실행문이 1문장인 경우 중괄호 생략가능
    default -> { 실행문 }
}
  • 람다식을 이용, break 문이 없고 다음 case문으로 넘어가지 않음
// 대입문에 사용하는 경우
타입 변수 = switch(변수) {
    case "값1" -> 변수값;
    case "값2" -> {
        ...;
        yield 변수값;
    }
    default -> 변수값;
};
  • switch를 대입문에 사용 가능
  • default 문 필수
  • 중괄호를 사용하는 경우 yield로 배정값 지정

 


 

반복문

  • 조건에 따라 반복된 작업을 할때 사용(loop생성)
  • for, while, do-while

 

1️⃣ while문

while(조건식){본체실행문}
  • 조건식은 boolean타입을 반환
  • 특정 조건을 만족하는지 초점
    • true→본체 실행문
    • false→다음 실행문
while(++i<--j);//i=j가 될 때까지 반복 
  • 본체가 없는 while문

 

2️⃣ do-while문

do{본체실행문}while(조건식);
  • 본체를 먼저 실행 후 조건식 검사
  • 적어도 한번은 본체를 실행(메뉴 화면 등을 구현할 때 유용)

 

3️⃣ for문

for(초기식;조건식;반복식){본체 실행문}
  • 조건보다는 반복 횟수에 초점
  • 초기식→조건식→본체→반복식→본체→…
  • 두개이상의 변수를 초기식과 반복식에 사용가능
    콤마로 구분
  • for문의 일부를 생략가능

 

4️⃣ for-each문

for(타입 변수: 컬렉션){본체 실행문}
  • 기존for문을 개선한 것으로 Java5부터 도입
  • 각 컬렉션의 원소를 가져와 변수에 대입

 


 

분기문

  • 조건 여부에 관계없이 프로그램의 흐름을 변경
  • break, continue, return

 

1️⃣ break문

break;
  • switch문이나 반복문을 종료하는데 사용
  • 가장 안쪽의 루프만 종료
break 레이블;
  • C의 goto처럼 활용가능:
    • 레이블로 지정된 블록을 탈출
    • 중첩된 블록에서 빠져나올 때 사용
boolean t = true;
first: {
    second: { 
        System.out.println("Before");
        if(t) break first;
    }
    System.out.println("Not executed");
}
System.out.println("After");

 

2️⃣ continue문

  • 반복문에서 나머지 실행문을 스킵하고 다음 반복으로 넘어감
  • continue가 실행되면 조건식 검사로 넘어감
💡 for문은 조건식이 아닌 증감식으로 넘어감

'Java' 카테고리의 다른 글

Comparable (java.lang), Comparator (java.util)  (1) 2025.04.30
Collection 프레임워크  (0) 2025.04.29
JDK, JRE, JVM  (0) 2025.04.22
데이터 타입 분류 - JAVA  (0) 2025.04.20
[ Map ] key값을 기준으로 정렬  (0) 2025.01.25