if switch

프로그램 실행순서

제어문

조건문

if 문

이미지참조: https://velog.io/@foeverna/Java%EC%A0%9C%EC%96%B4%EB%AC%B8-%EC%A1%B0%EA%B1%B4%EB%AC%B8-if%EB%AC%B8

if

package chapter05;

public class IfEx {

    public static void main(String[] args) {

        int score = 70;

        System.out.println("시험 시작");
        if (score >= 60) {
            System.out.println("합격입니다.");
        }
        System.out.println("시험 끝");

    }

}

if ~ else

package chapter05;

public class IfEx1 {

    public static void main(String[] args) {

        int score = 50;

        System.out.println("시험 시작");
        if (score >= 60) {
            System.out.println("합격입니다.");
        } else {
            System.out.println("불합격입니다.");
        }
        System.out.println("시험 끝");

    }

}

if ~ else if ~ else

package chapter05;

public class IfEx2 {

    public static void main(String[] args) {

        int score = 80;
        String grade = "";

        System.out.println("학점부여 시작");
        if (score >= 95) {
            grade = "A+";
        } else if (score >= 90){
            grade = "A";
        } else if (score >= 85) {
            grade = "B+";
        } else if (score >= 80) {
            grade = "B";
        } else if (score >= 70) {
            grade = "C";
        } else if (score >= 60) {
            grade = "D";
        } else {
            grade = "F";
        }
        System.out.println("당신의 학점은 "+grade+"입니다.");
        System.out.println("학점부여 끝");

    }

}

중첩 if문

package chapter05;

public class IfEx3 {

    public static void main(String[] args) {

        int math = 90;
        int eng = 95;

        # 중첩  if문        
        if (math >= 60) {
            if (eng >= 60) {
                System.out.println("통과");
            } else {
                System.out.println("탈락");
            }
        } else {
            System.out.println("탈락");
        }
        # 중첩 => 논리식
        if (math >= 60 && eng >= 60) {
            System.out.println("통과");
        } else {
            System.out.println("탈락");
        }

    }

}

switch 문

형식

    switch (값)
       {
       case 값 1 :
              행동 1 ;
              break ;
       case 값 2 :
              행동 2 ;
              break ;
       ...
       case 값 n :
              행동 n ;
              break ;
       default :
              행동 n+1 ;
       }
package chapter05;

public class SwitchEx2 {

    public static void main(String[] args) {

        int number = 3;

        switch(number) {
            case 1:
                System.out.println("1번");
                break;
            case 2:
                System.out.println("2번");
                break;
            case 3:
                System.out.println("3번");
                break;
            case 4:
                System.out.println("4번");
                break;
            case 5:
                System.out.println("5번");
                break;
            default:
                System.out.println("6번");
        }

    }

}

break문 생략

package chapter05;

public class SwitchEx2 {

    public static void main(String[] args) {

        int number = 3;

        switch(number) {
            case 1:
                System.out.println("1번");
                //break;
            case 2:
                System.out.println("2번");
                //break;
            case 3:
                System.out.println("3번");
                //break;
            case 4:
                System.out.println("4번");
                //break;
            case 5:
                System.out.println("5번");
                //break;
            default:
                System.out.println("6번");
        }

    }

}

Scanner 객체

package chapter05;

import java.util.Scanner;

public class SwitchEx {

    public static void main(String[] args) {

        System.out.println("점수를 입력하세요.");
        Scanner scan = new Scanner(System.in);

        int score = scan.nextInt();
        String grade = "";
        switch(score / 10) {
            case 9:
                grade = "A";
                break;
            case 8:
                grade = "B";
                break;
            case 7:
                grade = "C";
                break;
            case 6:
                grade = "D";
                break;
            default:
                grade = "F";
        }
        System.out.println("학점 : "+grade);

    }

}

다양한 조건문 예제

public class LoginTest {
    /**
     * 로그인 테스트
     */
    public static void main(String[] args) {
        // TODO Auto-generated method stub
        String id = args[0];
        String passwd = args[1];

        if(!id.equals("java")){
            System.out.println("당신은 우리 회원이 아닙니다.");
        }
        else if(!passwd.equals("java")){
            System.out.println("비밀번호가 일치하지 않습니다.");
        }
        else{
            System.out.println("환영합니다.");
        }
    }
}
​

주민번호로 성별 판단

import java.util.*;
​
class FlowTest10 {

     /**
     * 주민번호로 성별 판단
     * String 클래스 charAt() 메소드 사용
     */
    public static void main(String[] args) { 
        char gender;
        String regNo = "";
​
        System.out.print("당신의 주민번호를 입력하세요.(011231-1111222)>");
​
        Scanner scanner = new Scanner(System.in);
        regNo = scanner.nextLine();
​
        // 문자열.charAt(index) : 0 부터 시작
        gender = regNo.charAt(7); // 입력받은 번호의 8번째 문자를 gender에 저장
​
        switch(gender) {
            case '1':
            case '3':
                System.out.println("당신은 남자입니다.");
                break;
            case '2':
            case '4':
                System.out.println("당신은 여자입니다.");
                break;
            default:
                System.out.println("유효하지 않은 주민등록번호입니다.");;
        }
    } // main의 끝
}
​

가위 바위 보 게임

import java.util.*;
​
class FlowTest9 {
    /**
     * 가위 바위 보 게임
     * 0.0 <= Math.random() < 1.0
     */
    public static void main(String[] args) { 
        int user, com;
​
        System.out.print("가위(1),바위(2), 보(3) 중 하나를 입력하세요.>");
​
        Scanner scanner = new Scanner(System.in);
        String tmp = scanner.nextLine(); // 화면을 통해 입력받은 내용을 tmp에 저장
        user = Integer.parseInt(tmp);    // 입력받은 문자열(tmp)를 숫자로 변환
​
        com = (int)(Math.random() * 3) + 1;  // 1,2,3중 하나가 com에 저장됨
​
        System.out.println("당신은 "+ user +"입니다.");
        System.out.println("컴은  "+ com +"입니다.");
​
        switch(user-com) {
            case 2: case -1:
                System.out.println("당신이 졌습니다.");
                break;
            case 1: case -2:
                System.out.println("당신이 이겼습니다.");
                break;
            case 0:
                System.out.println("비겼습니다.");
    //          break;      // 마지막 문장이므로 break를 사용할 필요가 없다. 
        }
    } // main의 끝
}
user - com 가위(1) 바위(2) 보(3)
가위(1) 무승부 0 com 승 -1 user 승 -2
바위(2) user 승 1 무승부 0 com 승 -1
보(3) com 승 2 user 승 1 무승부 0

가위바위보 문자로 입력하기

package chapter05;

import java.util.*;

public class FlowTest9_1 {

    public static void main(String[] args) { 
        int user, com;
        System.out.print("가위,바위,보 중 하나를 입력하세요.>");
        Scanner scanner = new Scanner(System.in);
        String tmp = scanner.nextLine(); // 화면을 통해 입력받은 내용을 tmp에 저장

        // 가위 -> 1

        if(tmp.equals("가위")) {
            user = 1;
        }else if(tmp.equals("바위")) {
            user = 2;
        }else {
            user = 3;
        }

        //user = Integer.parseInt(tmp);    // 입력받은 문자열(tmp)를 숫자로 변환
        com = (int)(Math.random() * 3) + 1;
        String sCom = "";
        if(com == 1) {
            sCom = "가위";
        }else if(com == 2) {
            sCom = "바위";
        }else {
            sCom = "보";
        }

        System.out.printf("user = (%s,%s) \n", tmp, user);
        System.out.printf("com = (%s,%s) \n", sCom, com);

        switch(user-com) {
        case 2: case -1:
            System.out.println("당신이 졌습니다.");
            break;
        case 1: case -2:
            System.out.println("당신이 이겼습니다.");
            break;
        case 0:
            System.out.println("비겼습니다.");
            //          break;      // 마지막 문장이므로 break를 사용할 필요가 없다. 
        }
    }

}