제어문(control flow statement)
프로그램의 수행 흐름을 바꾸는 역할
1.조건문
2.반복문
3.분기문
1.조건문
조건에 따라 다른 문장이 수행되도록 해줌
1)if
2)switch
if문을 주로 쓰고,
switch문은 처리해야 하는 경우의 수가 많을 때는 switch문이 유리
1)if문
if (조건식) { // 조건식은 논리값(true/false)
수행문장;
}
--> 조건식의 결과가 true면 안에 있는 문장 실행
if(조건식) {
수행문장;
} else {
수행문장;
}
--> 조건식의 결과가 true면, 안에 있는 문장 실행
--> 조건식의 결과가 false면, else 안에 있는 문장 실행
if else문은 조건이 2가지 일 때만 사용
3가지 이상이면 if, else if, else를 사용
else if
if(조건식) {
수행문장;
} else if(조건식) {
수행문장;
} else {
수행문장;
}
if문은 처음에 반드시 와야함
else if는 여러 개일 수 있음
else문은 없을 수 있음
if문 하나에서 순차적으로 false되면 다음 조건으로 넘어가다가 true가 되면 이후 조건은 수행x
- if문끼리는 true라도 연속 동작함
ex)
if(month == 1 || month == 2 || month == 12) {
season = "겨울";
if(temperature <= -15) {
season += "한파 경보";
} else if(temperature <= -12) {
season += "한파 주의보";
}
} else if (month >= 3 && month <=5) {
season = "봄";
} else if (month >= 6 && month <=8) {
season = "여름";
if(temperature >= 35) {
season += "폭염 경보";
} else if(temperature >= 33) {
season += "폭염 주의보";
}
} else if(month >= 9 && month <= 11) {
season = "가을";
} else {
season = "해당하는 계절이 없습니다.";
}
2)switch
형태
switch (조건식) {
case 값1 :
case 값2 :
case 값3 :
default :
}
조건식 : 정수, 문자, 문자열
조건식 정수,문자,문자열만 들어갈 수 있으므로, case의 값도 정수, 문자, 문자열 중에서 들어갈 수 있으며 해당 값이 일치하면 콜론(:)의 오른쪽 실제 실행되는 코드를 입력하면 된다
switch() ()안에 변수 값과 일치한 case 값을 true/false 논리로 해서 true되면 해당 case 안에 코드가 실행됨
어디에도 해당되지 않는 때 처리하는 것이 default ( = else)
if문과 switch문 차이
if문은 true가 되면 해당 조건의 코드 발동하고,
switch는 true된 코드부터 아래까지 전부 실행
if는 true가 되면 해당 코드만 실행하고 빠짐
switch는 각 case 안에 break 코드를 넣어줌
중첩 여부
switch끼리 중첩 가능
if switch 둘이 섞어서도 둘을 중첩해서도 모두 가능
예시 코드
(switch문은 주로 주문 메뉴에서 자주 쓰임)
public void method4() {
// 메뉴 자판기
// 번호지정하면 실행되는 로직
Scanner sc = new Scanner(System.in);
System.out.println("===메뉴===");
System.out.println("1.간단 계산기");
System.out.println("2.짝/홀수 판단");
System.out.println("3.n월의 마지막 날");
System.out.print("메뉴 번호 : ");
int menuNum = sc. nextInt();
switch(menuNum) {
case 1:
System.out.println("간단 계산기입니다");
break;
case 2:
System.out.println("짝홀수 판단입니다.");
break;
case 3:
System.out.println("n월의 마지막 날입니다.");
// 1-3외의 다른 수가 입력된다면?
// 아무런 반응x -> default로 해결
default:
System.out.println("잘못된 메뉴 번호입니다");
}
}
'JAVA > 개념정리' 카테고리의 다른 글
[Java] 제어문(control flow statement) : 분기문 - break, continue (0) | 2022.07.30 |
---|---|
[Java] 제어문(control flow statement) : 반복문 - for, while, do while (0) | 2022.07.30 |
[Java] 연산자(Operator) - 2.다항연산자 (0) | 2022.07.28 |
[Java] 연산자(Operator) - 1.단항연산자 (0) | 2022.07.28 |
[Java] 스캐너(Scanner) (0) | 2022.07.27 |