조건문
조건에 따라 별도의 명령을 실행하는 명령문
if 문
조건식의 결과가 true 이면, 해당 블록 내의 실행문을 실행
사용 방법
•
if
•
if ~ else
•
if ~ else if ~ else
if
if ~ else
if ~ else if ~ else
첫번째 조건을 만족하지 않았을 때만 두번째 조건을 검사하고
또한, 두 번째 조건을 만족하지 않았을 때, 그 다음 조건, 세 번째, 네 번째 조건을 검사한다.
모든 조건을 만족하지 않는다면 else 블록에 있는 실행문이 실행된다.
switch 문
조건 값이 case 키워드의 값과 일치할 때, 해당 case 이하의 실행문을 실행하는 조건문
•
char형, short형, int형 변수, 열거체 등 - 문자, 정수, 문자열 (실수는 불가능)
•
break 키워드가 없으면, 조건 값에 해당하는 case 절 뿐만 아니라, 그 이후에 등장하는 모든 case 절 및 default 절이 실행된다.
yield
Java 13부터 도입된 switch 표현식에서 값을 반환하는 키워드
•
기존의 switch 문은 break를 사용해야 했지만, yield는 값을 직접 반환할 수 있도록 개선되었습니다.
•
특히, 여러 줄 실행 후 값을 반환할 때 필수적으로 사용됩니다.
import java.util.Scanner;
public class Ex08_SwitchYield {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("정수 입력 : ");
int num = sc.nextInt();
// 입력 받은 정수를 5로 나눈 나머지가
// 2보다 작으면 "*" 출력
// 그렇지 않으면 "**" 출력
String result = switch (num % 5) {
// 반환값만 지정하는 경우, yield 생략하고 -> 사용 가능
case 0, 1 -> "*";
default -> {
System.out.println("별 2개");
// 블록의 실행문이 여러 줄이 경우 yield 필수
// yield 반환값;
yield "**";
}
};
System.out.println(result);
// yield 사용하지 않은 경우
String result2;
switch (num % 5) {
case 0, 1: result2 = "*"; break;
default: result2 = "**"; break;
}
System.out.println(result2);
sc.close();
}
}
Java
복사