Basic/Java

{Java} 조건문 if문 switch문 (문제 포함)

카고형 2020. 3. 13. 12:00
728x90
Java Conditionals

if 조건문

if( 조건식) {
    //조건식이 true 이면 실행되는 영역
}





어떤 조건에 의해 흐름을 결정하는 것이어서 Decision Making이라 부르기도 한다
 조건이 만족하면 if 문 안에 있는 걸 수행하고 아니면 바로 넘어감(if 문이 끝남)

[ 예제 ]
시험점수를 키보드로 입력 받고 
시험 점수가 60점 이상이면 "합격" 이라고 출력 해봅시다.
(코드는 다음꺼 에 있어용 )



if ~ else 조건문

if( 조건식) {
    //조건식이 true 이면 실행됨
}
else{
    //조건식이 false 이면 실행되는 영역
}





위에는 조건이 부합하면 if문 안에 코드를 수행하고 부합하지 않을때는 
else 안에 코드를 수행 할것이다


[ 예제 ]
아까 한 예제에서 60점 미만이면 "불합격" 을 추가해봅시다


예제의 코드는
import java.util.Scanner;;
public class Main {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             System.out.println("*** 점수을 입력 해주세요 ***");
             System.out.print("시험점수는? ");
             int number = sc.nextInt();
             
             if(number >= 60) {
                    System.out.println("합격");
             }
             else {
                    System.out.println("불합격");
             }
             
       }
}


if  ~  else if  ~ else 조건문 


if( 조건식1) {
    //조건식1 이 true 이면 실행됨
}
else if ( 조건식 2 ){
        //조건식1 이 true 이면 실행됨
}
else{
    //위 조건이 모두 해당 되지 않으면 실해되는 영역
}




if 문 조건식이 true면 실행내용 으로 아니면 else if 조건식2 로 넘어가서 true면 실행내용2 아니면 실행내용3을 실행한다




[  예제  ]
숫자를 입력받아
숫자가0보다 크면 "양수' 작으면 "음수"  둘다 아니면 "0"  으로 출력해보자


import java.util.Scanner;;
public class Main {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             System.out.println("숫자을 입력 해주세요");
             int number = sc.nextInt();
             
             if(number > 0) {
                    System.out.println("양수 입니다");
             }
             else if(number == 0){
                    System.out.println("0 입니다");
             }
             else {
                    System.out.println("음수 입니다");
             }
             
       }
}



이렇게 if 문 조건문은 끝 ㅇㅅㅇb



switch ~ case 조건문

기본 구조는

switch(변수){
    case 값1 :
        //변수 값이 1 일때 실행 내용
        break;
    case 값2 :
        //변수 값이 2 일때 실행 내용
        break;
    case 값3 :
        //변수 값이 3 일때 실행 내용
        break;
    case 값4 :
        //변수 값이 4 일때 실행 내용
        break;
    default :
        // 위 해당 내용 없을때 실행되는 내용 

}


case의 값에는 수치형 뿐만 아니라, char, String형 도 올 수 있음
if ~else 문의 조건식이 모두 == 로 표현 될때 switch 문을 사용 

[예제]
과목 번호를 입력 받아 강의실 번호를 출력하는 프로그램을 만들어보자
과목은 1.수학 2.과학 3.영어 4.역사
과목 code 값이 
1이면 "101호 입니다"
2이면 "102호 입니다"
3이면 "203호 입니다"
4이면 " 202호 입니다"
남어지는 "상담원에게 문의 해주세요" 를 출력 하세요



코드는 

import java.util.Scanner;
public class Main {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             System.out.println("과목을 선택해 주세요");
             System.out.println("( 1.수학 2.과학 3.영어 4.역사)");
             System.out.print("과목번호 :");
             int num = sc.nextInt();
             
             switch(num) {
             
             case 1 : System.out.println("101호 입니다"); break;
             case 2 : System.out.println("102호 입니다"); break;
             case 3 : System.out.println("203호 입니다"); break;
             case 4 : System.out.println("202호 입니다"); break;
             default : System.out.println("상담원에게 문의 해주세요"); break;
             
             }
             
             sc.close();
       }
}

결과





if 문 [문제 1]

숫자을 입력 받아 아래와 같이 출력 되는 프로그램을 만들어 보자
입력받은 수가 양수 일떄 짝수 이면 "짝수" 출력 홀수 이면 "홀수" 
출력 음수이면 "음수" 라고 출력 0이면 "0" 으로 출력 해보자  







if ~ else if ~ else  [ 문제 2]

과목 번호를 입력 받아 강의실 번호를 출력하는 프로그램을 만들어보자
과목은 1.수학 2.과학 3.영어 4.역사
과목 code 값이 
1이면 "101호 입니다"
2이면 "102호 입니다"
3이면 "203호 입니다"
4이면 " 202호 입니다"
남어지는 "상담원에게 문의 해주세요" 를 출력 해보자 








if ~ else if ~ else [문제 3]
가위 바위 보 게임 만들기 








switch ~ case  [문제 4]

몇 월을 입력받아 해당 퀄의 일수를 출력하는 프로그램 작성

1월 은 31일
2월 은 29일
3월 은 31일
4월 은 30일
5월 은 31일
6월 은 30일
7월 은 31일
8월 은 31일
9월 은 30일
10월 은 31일
11월 은 30일
12월 은 31일



 ^____^            @
|ㅒㅅㅒ|           @
|\\\\\\\\\\\\\\\\|@
|/  |/            \| \|




문제 풀이



[문제1]
import java.util.Scanner;;
public class Main {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             System.out.println("숫자을 입력 해주세요");
             int number = sc.nextInt();
             
             if(number > 0) {// 0보다 큰 경우
                    if(number % 2 == 0) {//number 가 2로 나눈 나머지가 0일때 (짝수)
                                 System.out.println("짝수");
                    }else {
                           System.out.println("홀수");
                    }
                    
             }
             else {
                    if(number < 0 ) {// 0보다 작은 경우
                           System.out.println("음수");
             }
                    else {
                    System.out.println("0");                
             }
             
       }
        sc.close();
       }
}




[문제2]
import java.util.Scanner;;
public class Main {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             System.out.println("과목을 선택해 주세요");
             System.out.println("(1.수학 2.과학 3.영어 4.역사)");
             System.out.print("과목 번호 : ");
             int number = sc.nextInt();
             
             if(number == 1) {
                    System.out.println("101호 입니다");
             }
             else if(number == 2){
                    System.out.println("102호 입니다");
             }
             else if(number == 3){
                    System.out.println("203호 입니다");
             }
             else if(number == 4){
                    System.out.println("202호 입니다");
             }
             else {
                    System.out.println("상담원에게 문의 해주세요");
             }
             sc.close;
       }
}



[문제 3]
else if 문 으로 가위 바위 보 게임 만들기 
import java.util.Random;
import java.util.Scanner;
public class Main {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             System.out.println("## 가위 바위 보 게임 ##");
             System.out.println("( 1.주먹 2.가위  3.보)");
             System.out.print("숫자을 입력하세요 :");
             int com = 0;
             int user = sc.nextInt();
             Random r =new Random();
             com = r.nextInt(3)+1;
             System.out.println("유저 "+user);
             System.out.println("컴퓨터"+com);
             
             if(user == 1) {
                    if(com == 2) {
                           System.out.println("승리");
                    }
                    else if(com == 3) {
                           System.out.println("패배");
                    }
                    else {
                           System.out.println("무승부");
                    }
             }
             else if(user == 2) {
                    if(com == 2) {
                           System.out.println("무승부");
                    }
                    else if(com == 3) {
                           System.out.println("승리");
                    }
                    else {
                           System.out.println("패배");
                    }
             }
             else if(user == 3) {
                    if(com == 2) {
                           System.out.println("패배");
                    }
                    else if(com == 3) {
                           System.out.println("무승부");
                    }
                    else {
                           System.out.println("승리");
                    }
             }
             else {
                    System.out.println("다시 입력 해주세요!!");
             }
             
             sc.close();
       }
}

[문제 4]

import java.util.Scanner;
public class Main {
       public static void main(String[] args) {
             Scanner sc = new Scanner(System.in);
             System.out.println("몇 월인지 입력 해주세요");        
             System.out.print("입력 :");
             int month = sc.nextInt();
             System.out.print("이 달의 일수는   ");
             switch(month) {
             
             case 2 :
                    System.out.println("29일 입니다"); break;
             case 4: case 6: case 9: case 11:
                    System.out.println("30일 입니다"); break;
                    
             default :
                    System.out.println("31일 입니다"); break;
             
             }
             
             sc.close();
       }
}

switch ~ case 문을 if 문으로 바꾸면

if (month == 2) { 
    System.out.println("29일 입니다");
} else if ((month == 4) || (month == 6) || (month == 9) || (month == 11)) {
     System.out.println("30일 입니다"); 
    } else { 
        System.out.println("31일 입니다");
}



728x90