조건문
조건에 따라 별도의 명령을 실행하는 명령문
if 문
조건식의 결과가 true 이면, 해당 블록 내의 실행문을 실행
사용 방법
•
if
•
if ~ else
•
if ~ else if ~ else
if
if 라는 예약어를 사용하며, ( )괄호 안의 조건식을 작성
조건을 만족할 때, 실행할 문장이 한 문장이라면, { } 중괄호 블록을 생략할 수 있다.if ~ else
if 문의 조건이 만족하지 않을 때, 실행할 문장을 else 블록 안에 작성
else 는 단독으로 쓰일 수 없고, if 문 뒤에 짝을 이루어서 사용if ~ else if ~ else
앞에 조건식이 만족하지 않는 경우, 그 다음 조건을 검사한다.첫번째 조건을 만족하지 않았을 때만 두번째 조건을 검사하고
또한, 두 번째 조건을 만족하지 않았을 때, 그 다음 조건, 세 번째, 네 번째 조건을 검사한다.
모든 조건을 만족하지 않는다면 else 블록에 있는 실행문이 실행된다.
switch 문
조건 값이 case 키워드의 값과 일치할 때, 해당 case 이하의 실행문을 실행하는 조건문
조건값에 가능한 값•
char형, short형, int형 변수, 열거체 등 - 문자, 정수, 문자열 (실수는 불가능)
선택된 case문 영역이 실행되고 나서 그 아래 케이스 문이 연달아서 실행된다.•
break 키워드가 없으면, 조건 값에 해당하는 case 절 뿐만 아니라, 그 이후에 등장하는 모든 case 절 및 default 절이 실행된다.
yield
Java 13부터 도입된 switch 표현식에서 값을 반환하는 키워드
•
기존의 switch 문은 break를 사용해야 했지만, yield는 값을 직접 반환할 수 있도록 개선되었습니다.
•
특히, 여러 줄 실행 후 값을 반환할 때 필수적으로 사용됩니다.
단순 값 반환: -> 사용 (yield 필요 없음)
여러 줄 실행 후 반환: 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
복사







Java - 조건문




