제어문 - 조건문 CONDITIONAL

2022. 2. 21. 18:01·Programing/JAVA

제어문 - 조건문 CONDITIONAL

프로그램 실행순서

  • class파일 실행 > main() 호출 > 변수선언 > 변수 대입 > 변수 연산 > 변수 출력

제어문

  • 프로그램 실행순서를 제어하는 구문
  • 변수연산을 특정 조건에서만 처리하거나 특정 횟수만큼 처리

조건문

  • 조건식이 참(true)인 경우 실행블럭 처리
  • 조건식 참(true)이 여러개인 경우에도 첫번째로 true인 실행블럭만 처리
  • 종류 : 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문

  • if 실행불럭에 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("탈락");
        }
        # 중첩 => 논리식
        if (math >= 60 && eng >= 60) {
            System.out.println("통과");
        } else {
            System.out.println("탈락");
        }

    }

}

switch 문

  • 모든 switch문은 if문으로 가능
  • switch 값과 case 값이 같은 경우 실행
  • break문 생략시 모두 실행됨
  • default: 같은 값이 없는 경우 실행

형식

    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 객체

  • 콘솔에서 값 입력 받을수 있는 클래스
  • 클래스에 있는 메서드를 통해서 사용자 입력값을 읽어옴
  • 읽어오는 메서드 : next(), nextLine(), nextInt()
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를 사용할 필요가 없다. 
        }
    }

}

깃 허브 주소 : https://github.com/bjw5035/Academy_Study

'Programing > JAVA' 카테고리의 다른 글

함수 - 메서드 FUNCTION  (0) 2022.02.24
제어문 - 반복문 LOOP  (1) 2022.02.23
연산  (0) 2022.02.21
변수  (0) 2022.02.21
변수란?  (0) 2022.02.17
'Programing/JAVA' 카테고리의 다른 글
  • 함수 - 메서드 FUNCTION
  • 제어문 - 반복문 LOOP
  • 연산
  • 변수
쿠크
쿠크
  • 쿠크
    쿠크 개발자
    쿠크
  • 전체
    오늘
    어제
    • 분류 전체보기 (58) N
      • Programing (35)
        • JSP (3)
        • JAVA (22)
        • Spring (5)
        • HTML (5)
      • 이외 (12)
        • Git (2)
        • 임시 잡다함 (6)
        • IntelliJ (1)
        • 에러 모음 (2)
      • OS (5) N
        • Docker (0)
        • Kubernetes (3) N
        • Linux (2)
      • DataBase (2)
        • Mysql (1)
      • 토이 프로젝트 (0)
        • 게시판 만들기 (0)
      • Spring (0)
      • 건강 & 생활 (2) N
        • 여름 건강 (2) N
      • 공부 · 자격증 (1) N
      • 명언과 루틴 (1) N
      • 부동산 or 주식 (0)
        • 부동산 (0)
        • 주식 (0)
      • 경제 (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

    • 깃 허브 주소
  • 공지사항

  • 태그

    ubuntu
    에어컨사용법 #여름건강관리 #냉방병예방 #에어컨전기세절약 #에어컨필터청소 #여름꿀팁 #슬기로운여름생활
    Linux
    error
    공부습관 #하루2시간공부 #비전공자공부법 #직장인공부루틴 #노션공부기록 #공부기록 #루틴만들기 #습관의힘
    IntelliJ
    상속
    jsp
    MVC
    MySQL
    클래스
    spring
    spring-framwork
    여름건강 #무더위건강관리 #여름철습관 #건강정보 #수분섭취 #냉방병예방 #여름식단 #여름루틴
    HTML
    아침루틴 #명언모음 #동기부여 #하루시작 #습관의힘 #성공습관 #하루계획 #셀프모티베이션
    Database
    쿠버네티스
    java
    kubernetes
  • hELLO· Designed By정상우.v4.10.3
쿠크
제어문 - 조건문 CONDITIONAL
상단으로

티스토리툴바