제어문 - If문, if - else , switch문

구름·2022년 11월 19일

Java_1

목록 보기
8/19

제어문 : "실행 흐름을 바꾼다" 는 의미에서 제어

IF문 : 조건식이 참일때, 괄호안의 문장을 수행한다.

if 조건문에서 실행문이 1개일 경우만 {}생략이 가능

if ( 조건) { 실행문 }

조건식의 다양한 예:

조건식조건식이 참일 조건
90 < = x && x < =100정수 x가 90이상 100이하일때
x < 0
x % 3 == 0 && x %2 =0정수 x가 3의 배수이지만 2의배수가 아닐때
ch ==’y’
ch == ‘ ‘
‘A’ < = ch && ch < = ‘Z’문자 ch가 대문자일때
‘a’ < = ch && ch < = ‘z’문자 ch가 소문자일때
‘0’ < = ch && ch < = ‘9’문자 ch가 숫자일때
str.equals(”yes”)문자열 str의 내용이 “yes”일때 (대소문자 구분)
str.equalsIgnoreCase(”yes”)문자열 str의 내용이 “yes”일때 (대소문자 구분안함)

if - else 문 : 조건식이 참일때와 거짓일때로 나눠서 처리

=> 삼항 연산자로 변환이 가능하다.

if (조건이 참일때 실행) {(실행문}

}else{(조건이 참이 아닐때 실행문)

  • 3항 연산자 : (조건) ? 참(출력문) : 거짓(출력문)
    int value1 = ( 3 > 5) ? 6 : 9 
    system.out.prinln(value1)
    => 출력 : 9, 조건이 false 이므로 false에 있는 9 가 출력 
  • 문제 :스캐너로 정수 값을 인풋 받고 인풋 받은 정수 값이 홀수 이면 "홀수" 라고 출력하고 , 인풋 받은 값이 "짝수" 라고 출력
    단, 삼항 연산자를 사용해서
    Scanner sc = new Scanner (System. in ) //  1. 스캐너 선언 
    
    	System.out.println(" 정수를 입력하세요 " ) ; 
       int num = sc.nextInt(); // 2. 정수를 입력받을 변수를 출력문 아래 넣는다. 
       
       System.out.println ( num + "은/는" + (num %2 == 0 ? "짝수" : "홀수")
       
출력 결과 >> 

![](https://velog.velcdn.com/images/coolpink3/post/b7129a7e-756e-453c-895d-4187cd43a632/image.png)

---

### if - else if 문 : 조건이 여러개인 경우 

여러개 중의 하나 - 여러개의 조건식을 포함한 조건식 

` if (조건 1) {조건1이 참일때 실행 } else if (조건 2) { 조건 2가 참일때 실행 }
			//...else {조건에 존재하지 않을 경우 실행문}` 
 
 ### 중첩 If문 - If문 안의 If 
 
 ```java
 if ( (*조건식1) int a < 100) { 
 	if( a< 10 && a <30 (*조건식2)) {
    system.out.println ( " 바보 ")
    }else{
    system.out.println ( "바보가 아니다")
    }
  } else {
 //  조건식 1이 false일때 수행되는 문장들 

Switch 문 : 처리해야하는 경우의 수가 많을 때 유용한 조건문

  1. 조건식을 계산한다.
  2. 조건식의 결과가 일치하는 case문으로 이동한다.
  3. 이후의 문장들을 수행한다.
  4. break문이나 switch문의 끝을 만나면 Switch문 전체를 빠져나간다.

[예제]

switch 문을 사용하여 프로그램 하세요.
스캐너로 정수 1 을 입력받으면 "금메달입니다" 츨력
스캐너로 정수 2 를 입력받으면 "은메달입니다" 출력
스캐너로 정수 3 을 입력받으면 "동메달입니다" 출력
그 외의 값을 인풋 받으면 "메달이 없습니다" 출력

int num;
		
		System.out.println("정수를 입력하세요. - > 메달의 색을 알 수 있습니다");
		num = sc.nextInt();
		
		switch (num) {
		case 1:
			System.out.println("금메달 입니다.");
			break;
			
		case 2:
			System.out.println("은메달 입니다.");
			break;
		case 3 : 
			System.out.println("동메달입니다.");
			break;
		default:
			System.out.println("메달이 없습니다.");
		}
		
		

	}

}

[예제2]

스캐너로 1월 ~ 12월 까지 월을 입력받아서 해당 월의 일수를 출력해 주세요
// 출력 : 1월은 31일 입니다
// month 월 day 일

		Scanner sc = new Scanner (System.in);
		
		System.out.println("1월부터 12월까지 월을 입력하면 해당 일수를 출력합니다");
		int month = sc.nextInt();
		
		switch (month) {
		case 1: 
		case 3:
		case 5:  
		case 7: 
		case 9:
		case 11:
			System.out.println(month + "월 은/는" + " 31일 입니다.");
		break;
		
		case 2:
			System.out.println(month+ "월 은/는"+"28일 입니다.");
		break;
		
		case 4: case 6: case 8: case 10: case 12:
			System.out.println(month + "월 은/는" + "30일 입니다." );
			default :
				System.out.println("잘 못 입력하셨습니다.");
			
		}
		sc.close();
        }
   }

제약조건
1.Switch문의 조건식 결과는 정수 또는 문자열이어야한다.
2.case문의 값은 정수 상수(문자 포함), 문자열만 가능하며, 중복되지 않아야한다.

profile
내가 보려고 하는 업데이트

0개의 댓글