[4] 중첩 if문, 연속적인 if

지오니모·2022년 7월 28일
0

Java

목록 보기
7/12

중첩 if

if문에 다시 if문이 포함되는 문장이다.

예시)

if와 else의 매칭 문제

else절은 가장 가까운 if절과 매치되며,
만약 다른 if절과 else절을 매치시기려면
중괄호를 사용하여 블록으로 묶어준다.



🏁연습 문제 (홀수짝수 & 음수양수 판단)

  • 문제 : 정수 하나를 입력받고(0제외),
    홀수인지 짝수인지 출력 후 음수인지 양수인지 출력하라
Scanner input = new Scanner(System.in);

System.out.println("아무 정수를 입력하세요(0은 제외) : ");
int number = input1.nextInt();

		
if ( number%2 == 1  || number%2 == -1 ) {
	System.out.print("이 값은 홀수이며 ");
	if ( number > 0 ) {
		System.out.println("양수입니다");
	}
 	else {
		System.out.println("음수입니다.");
	}
 }
 else {
	System.out.print("이 값은 짝수이며 ");
	if ( number > 0 ) {
		System.out.println("양수입니다");
	} else {
    	System.out.println("음수입니다.");
      }
}	

홀수와 짝수의 판별은
값을 2로 나누었을 때 나머지가 1이나 -1이면 홀수, 아니라면 짝수로 표현했다.



🏁연습 문제 (최대값 구하기)

  • 문제 : "숫자 세개를 띄어쓰기로 구분해서 입력하세요"를 출력시키고, 입력받은 정수 3개 중 최대값을 출력하라
int a, b, c, max;

System.out.println("숫자 세개를 띄어쓰기로 구분해서 입력하세요");
a = input.nextInt();
b = input.nextInt();
c = input.nextInt();

if (a>b) {
	max = a;  //max에 a 할당
    if (a>c) {  //조건문을 (max>c)
    	System.out.println("최대값 : " +a);  //max
   	}
    else {  //c가 max값 보다 크므로 max값에 할당
    	System.out.println("최대값 : " +c);  //max
    }
}
else {
	if(b>c) {
    	System.out.println("최대값 : " +b);
  	else {
		System.out.println("최대값 : " +c);
    }
}
        
        

* int a, b, c;를 선언하고 input.nextInt();로 띄어쓰기 한 세개의 값을 받으면, 값이 입력된 순서대로 a, b, c에 매치된다.



연속적인 if


if문(조건식1)이 참이라면 문장1에서 종료되지만,
거짓이라면 else if(조건식2)로 넘어가고,
마찬가지로 참이라면 종료,
종료되면 조건식4로 넘어간다.
조건식1,2,3,4 모두 거짓이라면
else문의 문장4의 값이 출력된다.



🏁연습 문제 (코드값을 이용한 성별 확인)

  • 문제 : 코드값이 홀수이면(1,3) 남자,
    짝수이면(2,4) 여자를 출력하시오
int code = 4;

if (code == 1 || code ==3) {
	System.out.println("남자입니다");
} 
else if (code == 2 || code == 4) {
	System.out.println("여자입니다");
}  
else {  //여기서 else문은 바로 위에 있는 조건이 거짓일 때 실행된다
	System.out.println("없는 코드입니다");
}



🏁연습 문제 (음수, 양수, 0 판별하기)

  • 문제 : 임의의 정수 값을 만들어서 양수,음수, 0 값을 확인하고 출력하시오
int num2 = 6;
		
if (num2 > 0) {
	System.out.println("양수입니다");
} else if (num2 < 0) {
	System.out.println("음수입니다");
} else {
	System.out.println("0입니다");
}
	



🏁연습 문제 (학점 계산)

  • 문제 : 점수를 입력받고 90점 이상은 A, 80점 이상은 B, 70점 이상은 C, 그 미만의 점수는 F로 출력하시오
Scanner input = new Scanner(System.in);
		
System.out.println("점수를 입력하세요 : ");
int score1 = input.nextInt();
		 
if ( score1 >= 90 ) {
	System.out.println("A 학점입니다");
} else if ( score1 >=80 ) { 
	System.out.println("B 학점입니다");
} else if ( score1 >=70 ) {
	System.out.println("C 학점입니다");
} else {
	System.out.println("F 학점입니다");
}
		



🏁연습 문제 (미세먼지 판별기)

  • 문제 : 미세먼지 값을 임의로 정한 뒤 0~30이면 좋음, 31~80이면 보통, 81~150이면 나쁨, 151이상이면 매우나쁨을 출력하시오
int dust = 5;
		
if (dust >=0  && dust <= 30) {
	System.out.println("미세먼지 좋음");
} else if (dust <=  80) {
	System.out.println("미세먼지 보통");
} else if (dust <= 150) {
	System.out.println("미세먼지 나쁨");
} else {
	System.out.println("미세먼지 매우 나쁨");
}

profile
프론트엔드 지망생

0개의 댓글

관련 채용 정보