제어문(control statement)
프로그램의 실행흐름을 제어하는 것
- 조건문(conditional statement)
- 반복문(iterative statement)
- 분기문(branch statement)
조건문
- 조건식에 따라 프로그램의 흐름 제러
- 조건식의 결과에 따라 블록 실행 여부가 결정
- Java는
if
와switch
두가지 조건문 지원
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 |