제어문 - 조건문 CONDITIONAL

2022. 2. 21. 18:01·Programing/JAVA
목차
  1. 프로그램 실행순서
  2. 제어문
  3. 조건문
  4. if 문
  5. switch 문
  6. 다양한 조건문 예제

제어문 - 조건문 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
  1. 프로그램 실행순서
  2. 제어문
  3. 조건문
  4. if 문
  5. switch 문
  6. 다양한 조건문 예제
'Programing/JAVA' 카테고리의 다른 글
  • 함수 - 메서드 FUNCTION
  • 제어문 - 반복문 LOOP
  • 연산
  • 변수
쿠크
쿠크
  • 쿠크
    쿠크 개발자
    쿠크
  • 전체
    오늘
    어제
    • 분류 전체보기 (53)
      • Kubernetes (2)
      • Programing (35)
        • JSP (3)
        • JAVA (22)
        • Spring (5)
        • HTML (5)
      • 이외 (12)
        • Git (2)
        • 임시 잡다함 (6)
        • IntelliJ (1)
        • 에러 모음 (2)
      • OS (2)
        • Linux (2)
      • DataBase (2)
        • Mysql (1)
      • 토이 프로젝트 (0)
        • 게시판 만들기 (0)
      • Spring (0)
      • 부동산 or 주식 (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 링크

    • 깃 허브 주소
  • 공지사항

  • 태그

    클래스
    Database
    상속
    Linux
    IntelliJ
    MySQL
    jsp
    스프링 특징
    HTTP란
    에러원인
    spring
    에러 발생
    java
    kubernetes
    spring-framwork
    spring-framework
    error
    HTML
    MVC
    ubuntu
  • hELLO· Designed By정상우.v4.10.3
쿠크
제어문 - 조건문 CONDITIONAL

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.