Search

조건문

조건문

조건에 따라 별도의 명령을 실행하는 명령문
분류

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
복사

예시코드

if
4
switch
5