
: 조건식의 결과에 따라 블록 실행 여부가 결정됨
조건식에는 true or false를 산출할 수 있는 연산값이나 boolean 타입 변수가 올 수 있음
if (조건1) {
{else if (조건2)}
{else}
}
if : 오직 하나(필수)else if : n개가 와도 됨(선택, 없어도 됨)else : 오직 하나(선택, 없어도 됨), 조건은 쓰지 않음 조건'외' 모든 것이라고 인식하기 때문에 조건을 쓰면 오류남example)
①if혼자 사용 가능? -> O
②else if혼자 사용 가능? -> X
③if - else사용 가능? -> O
④if- else if 여러개사용 가능? -> O
⑤if(조건) - if(조건)사용 가능? -> O, 개별로 두 개의if로 인식함
if (조건식) {
실행문A
}
실행문B
① 조건식이 true이면 실행문A -> 실행문B 실행
② 조건식이 false이면 실행문B 실행
if(조건식) {
실행문A
} else {
실행문B
}
실행문C
① 조건식이 true이면 실행문A -> 실행문C 실행
② 조건식이 false이면 실행문B -> 실행문C 실행
if(조건식1) {
실행문A
} else if (조건식2) {
실행문B
} else {
실행문C
}
실행문D
① 조건식1이 true이면 실행문A -> 실행문D 실행
② 조건식1이 false이면 조건식2로 이동
③ 조건식2가 true이면 실행문B -> 실행문D 실행
④ 조건식2가 false이면 실행문C -> 실행문D 실행
switch (변수) {
case 값1 :
실행문A
break;
case 값2 :
실행문B
break;
default: // default는 생략 가능
실행문C
}
① 변수가 값1일 경우 실행문A 실행
② 변수가 값2일 경우 실행문B 실행
③ 변수가 값1, 값2 둘 다 아닐 경우 실행문C 실행
switch 키워드 : 조건문 시작
expression (표현식) :
- 정수형, 문자형, 문자열, 열거형(enums) 또는 String 자료형의 값일 수 있음
case value :
- 각 expression의 값과 일치하는 경우 실행할 코드 블록
- 각 case는 고유한 값을 가져야 하며 중복 불가
break :
- break는 switch 블록을 종료하고, 실행 흐름을 블록 밖으로 보냄
- 생략 시, 다음 case 블록도 실행(이를 fall-through라고 함)
default (옵션) :
- 주어진 case와 일치하는 값이 없을 때 실행됨
- 생략 가능하며 default는 switch블록의 마지막에 배치하는 것이 일반적
expression 평가 :
- switch 뒤의 표현식이 평가됩니다.
값 비교 :
- 평가된 값과 각 case의 값을 비교
일치하는 case 실행 :
- 일치하는 첫 번째 case의 코드를 실행
break처리 :
- break가 있는 경우 실행을 중단하고 switch 블록 종료
- break가 없으면 다음 case 블록으로 계속 실행
default 실행 :
- 어떤 case와도 일치하지 않으면 default가 실행
import java.util.Scanner;
public class DayOfWeek {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter a day number (1 for Monday, 2 for Tuesday, ..., 7 for Sunday): ");
int day = sc.nextInt();
switch (day) {
case 1:
System.out.println("Monday - Start of the work week!");
break;
case 2:
System.out.println("Tuesday - Keep going!");
break;
case 3:
System.out.println("Wednesday - Midweek already!");
break;
case 4:
System.out.println("Thursday - Almost there!");
break;
case 5:
System.out.println("Friday - Weekend is near!");
break;
case 6:
System.out.println("Saturday - Time to relax!");
break;
case 7:
System.out.println("Sunday - Prepare for the week ahead!");
break;
default:
System.out.println("Invalid day number!");
break;
}
}
}
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter first number: ");
double num1 = sc.nextDouble();
System.out.println("Enter an operator (+, -, *, /): ");
char operator = sc.next().charAt(0);
System.out.println("Enter second number: ");
double num2 = sc.nextDouble();
switch (operator) {
case '+':
System.out.println("Result: " + (num1 + num2));
break;
case '-':
System.out.println("Result: " + (num1 - num2));
break;
case '*':
System.out.println("Result: " + (num1 * num2));
break;
case '/':
if (num2 != 0) {
System.out.println("Result: " + (num1 / num2));
} else {
System.out.println("Error: Division by zero is not allowed.");
}
break;
default:
System.out.println("Invalid operator!");
break;
}
}
}
import java.util.Scanner;
public class GradeEvaluator {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("Enter your score (0-100): ");
int score = sc.nextInt();
switch (score / 10) {
case 10:
case 9:
System.out.println("Grade: A");
break;
case 8:
System.out.println("Grade: B");
break;
case 7:
System.out.println("Grade: C");
break;
case 6:
System.out.println("Grade: D");
break;
default:
System.out.println("Grade: F");
break;
}
}
}