조건문 if, switch
if문
if (조건식) {
// 조건식 true일 경우 수행될 코드 작성
}
블럭 내의 문장이 하나뿐일 경우 괄호{}를 생략 가능
if (score > 80)
System.out.println("pass"); // <- if에 속한 라인
System.out.println("fail"); // <- if에 속하지 않은 라인
들여쓰기를 해도 괄호로 묶여있지 않으면 포함되지 않는다
if-else문
if (조건식) {
// 조건식이 true일 때 수행될 코드
} else {
// 조건식이 false일 때 수행될 코드
}
if-else if문
if (조건식) {
// 조건식1이 true일 때 수행될 코드
} else if(조건식2) {
// 조건식2이 true일 때 수행될 코드
} else if(조건식3) {
// 조건식3이 true일 때 수행될 코드
} else {
// 조건식이 false일 때 수행될 코드
}
- true인 조건식을 만날 때까지 순서대로 진행(앞의 조건식이 false인 조건 유지)
- 참인 조건식 만나면 해당 블럭의 코드만 수행하고 전체를 빠져나옴
- else if는 여러개 사용 가능하며 else는 생략 가능
중첩 if문
if (조건식1) {
// 조건식이 true일 때 수행될 코드
if (조건식2) {
// 조건식1, 조건식2 모두 true일 경우
} else {
// 조건식1 true, 조건식2 false일 경우
}
} else {
// 조건식1이 false일 경우
}
switch문
switch (조건식) {
case 값1 :
// 값1의 경우 수행될 코드
break;
case 값2 :
// 값2의 경우 수행될 코드
break;
case 값3 :
// 값3의 경우 수행될 코드
break;
default :
// 일치하는 값이 없을 경우 수행될 코드
}
- switch문은 단 하나의 조건식으로 많은 경우의 수 처리 가능
- 조건식에 해당하는 case문으로 이동 후 break문 만날 때 까지 문장 수행(break문이 없으면 이후의 case 연속적으로 실행)
- 조건식에 해당하는 case가 없다면 default문으로 이동(default 생략 가능)
제약조건
switch문 조건식의 결과값이 반드시 정수 또는 문자열이어야함
case문의 값 역시 정수인 상수여야하고 중복되지 않아야 함(리터럴, 상수, 문자열 상수만 가능)
개선된 switch문
Java12~14를 거치며 개선된 switch문이 추가되었다
public class SwitchYieldExample {
public static void main(String[] args) {
String day = "Monday";
int workHours = switch (day) {
case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" -> {
System.out.println(day + " is a workday.");
yield 8; // 평일 근무 시간
}
case "Saturday", "Sunday" -> {
System.out.println(day + " is a weekend.");
yield 0; // 주말은 근무 안 함
}
default -> {
System.out.println("Invalid day.");
yield -1; // 잘못된 입력
}
};
System.out.println("Work hours: " + workHours);
}
}
- ->을 사용하여 특정 case에 해당되면 특정 값을 return함
- 블록과 yield를 활용해 더 긴 코드를 작성하고 결과값을 return할 수 있음
- byte, short, int, char, Enum, String 타입 사용 가능
반복문
for문
for (초기화;조건식;증감식) {
// 실행문
}
초기화 -> 조건식 -> 실행문 -> 증감식 순서로 진행
초기화와 증감식은 두 문장 이상 사용가능하며 콤마(,)로 작성 ex) for(int i=1, j=10; i<=100; i++, j--)
초기화, 조건식, 증감식 모두 생략 가능하며 이 경우 조건식을 통해 for문 빠져나올 수 있는 코드 작성
향상된 for문
for( 타입 변수명 : 배열 또는 컬렉션) {
// 반복될 코드
}
while문
while(조건식) {
// 조건식이 true일 경우 반복될 문장
}
while문의 조건식은 생략불가이다
do-while문
do {
// 조건식이 true일 경우 수행될 코드
} while (조건식); <- 세미콜론 붙이기
while문은 조건에 해당하지 않으면 한번도 실행되지 않을 수 있지만
do에 해당하는 문장은 적어도 한번 실행됨
break
자신이 포함된 가장 가까운 반복문을 벗어남
continue
if문과 사용되어 특정 조건에 해당되면 이후 문장을 뛰어넘고 다음 반복문으로 넘어감
'Java' 카테고리의 다른 글
[Java]객체지향 프로그래밍 I (0) | 2025.04.06 |
---|---|
[Java]배열(array) (0) | 2025.03.25 |
[Java]연산자(operator) (0) | 2025.03.23 |
[Java]변수(variable) (0) | 2025.03.20 |
[Java]컴파일, 경로설정, 메모리 영역 (0) | 2025.03.19 |