wisePocket

[JAVA] 기초문법 - 제어문(Control Flow Statements) - 조건문(If) - 12 본문

Java & Algorithm/Java

[JAVA] 기초문법 - 제어문(Control Flow Statements) - 조건문(If) - 12

ohnyong 2023. 7. 25. 22:40

조건문은 제어문 중 하나로 프로그램이 실행 흐름을 개발자가 조절 하기 위해서 사용한다. 그 중 조건을 사용하여 흐름을 조절하는 조건문의 기본 형태들을 타이핑하며 다시 익숙해지려고 한다.

 

Eclipse에서 IntelliJ로 갈아타서 조금 어색한 부분이 있어서 손이 얼었다. Keymap을 어느정도 나에게 맞춰서 사용하는데도 뭔가 어색한 부분도 있고, 좀 더 가볍고 편한 IDE같다. 아마도 계속해서 연간 구독을 하지 않을까 싶다. 익숙해질때 까지 클래스를 생성하고 public static void main(String[] args){}부터 안에 코드까지 모두 직접 치는 연습을 다시 하고 있다. 조금 익숙해지면 template를 하나씩 만들 예정이다.

 

 

  • 기본 : if, else
        //제어문(프로그램의 실행 방향을 제어하는 기능)
        // - 조건문 (if, Switch)
        // - 반복문 (for)

        //1.1)조건문 - if문
        //boolean flag = true;

        //기본 if, else
        boolean flag = false;

        if (flag) {
            //true인 경우
            System.out.println("값이 True입니다");
        } else {
            System.out.println("값이 False입니다");
        }
  • else if : if, else if, else
        //if, else if, else
        int number = 2;

        if (number == 1) {
            System.out.println("number값은 1입니다");
        } else if (number == 2) {
            System.out.println("number값은 2입니다");
        } else {
            System.out.println("number값은 모르는 값입니다.");
        }


중첩 if : if{if, else if, ..., else) else if, ..., else

        //중첩 if
        if (flag) {
            System.out.println("flag가 true입니다.");

            if (number == 1) {
                System.out.println("flag=true고, number=1");
            } else if (number == 2) {
                System.out.println("flag=true고, number=2");
            }
        } else {

            if (number == 1) {
                System.out.println("flag=false고, number=1");
            } else if (number == 2) {
                System.out.println("flag=false고, number=2");
            }
            System.out.println("flag가 false입니다");
        }


여기까지 흐름을 이어 응용해서 가위, 바위, 보 미니 게임을 만들어 본다.

import java.util.Objects;
import java.util.Scanner;

public class _07RockPaperScissors {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        //A에게 값 입력 받기
        System.out.println("A입력 : ");
        String aHand = sc.nextLine();

        //B에게 값 입력 받기
        System.out.println("B입력 : ");
        String bHand = sc.nextLine();

        //두개의 값을 비교하는 메서드 ->Object.equals(좌,우) : 좌우가 같은 경우 true, 다른 경우 false.
        if (Objects.equals(aHand, "가위")) {
            if (Objects.equals(bHand, "가위")) {
                System.out.println("A랑 B랑 비겼습니다");
            } else if (Objects.equals(bHand, "바위")) {
                System.out.println("B가 이겼습니다.");
            } else if (Objects.equals(bHand, "보")) {
                System.out.println("A가 이겼습니다.");
            } else {
                System.out.println("B가 이상한 값을 입력했습니다.");
            }
        } else if (Objects.equals(aHand, "바위")) {
            if (Objects.equals(bHand, "가위")) {
                System.out.println("A랑 가 이겼습니다");
            } else if (Objects.equals(bHand, "바위")) {
                System.out.println("비겼습니다.");
            } else if (Objects.equals(bHand, "보")) {
                System.out.println("B가 이겼습니다.");
            } else {
                System.out.println("B가 이상한 값을 입력했습니다.");
            }
        } else if (Objects.equals(aHand, "보")) {
            if (Objects.equals(bHand, "가위")) {
                System.out.println("B가 이겼습니다");
            } else if (Objects.equals(bHand, "바위")) {
                System.out.println("A가 이겼습니다.");
            } else if (Objects.equals(bHand, "보")) {
                System.out.println("비겼습니다.");
            } else {
                System.out.println("B가 이상한 값을 입력했습니다.");
            }
        } else {
            System.out.println("A가 이상한 값을 입력했습니다.");
        }
    }
}