조건문 - If문

김나영·2023년 5월 31일
0

Java 문법 종합반

목록 보기
2/21

조건문

특정 조건에 따라 다른 연산을 수행하고싶을때 사용
ex)

  • “물이 끓으면 강불에서 약불로 줄여주세요.”
  • “물이 끓으면”이 조건이 만족하면 “약불로 줄이는” 연산을 수행하는 조건문
  • 만약에 ❓ : 조건문 - if, switch

ex)

boolean flag = true;
if(flag) {
System.out.println("flag 값은 true 입니다."); // flag 값은 true 입니다.
boolean flag = false;
if(flag) {
System.out.println("flag 값은 true 입니다."); // 미출력

false값도 출력되게 하려면 if-else문 사용

boolean flag = true;
if(flag) { // true인 경우
System.out.println("flag 값은 true 입니다.");
}else { // false인 경우
System.out.println("flag 값은 false 입니다.");
}

IF문

if(조건)

  • 특정 조건에 따라 다른 연산을 수행하고 싶을때 사용하는 문맥
  • 기본적인 조건에 따른 연산을 수행하기 위해 if(조건) { 연산 } 형태로 사용
  • if 의 소괄호() 안의 조건이 boolean 값 true 를 만족하면 중괄호 {} 안의 연산을 수행

if(조건)-else

  • if문 조건이 거짓일 경우에 따른 연산을 수행하기 위해 else { 연산 } 형태로 사용
  • if 의 소괄호() 안의 조건이 boolean 값 false 를 만족하면 else 의 중괄호 {} 안의 연산을 수행

if(조건)-else if(조건)

  • if문 조건이 거짓일 경우에 다시한번 다른조건으로 체크해서 참일 경우에 연산을 수행하기 위해 else if(조건) { 연산 } 형태로 사용
  • else if 의 소괄호() 안의 조건이 boolean 값 true 를 만족하면 else if 의 중괄호 {} 안의 연산을 수행

ex)

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값은 모르는 값입니다.");
}
  • number값은 2입니다.가 출력됨(int number = 2이기 때문에)

  • int number = 1인 경우에는 number값은 1입니다.가 출력

  • int number = 999인 경우에는 number값은 모르는 값입니다.가 출력

중첩 if(조건)

  • if 문else, else if 로 해결할 수 없는 복잡한 조건이 있음
  • 이럴때 중첩해서 if 문 또는 else if문 또는 else 문 안에 if 문을 넣을 수 있음

ex)

boolean flag = true;
int number = 2;
if(flag) {
   if (number == 1) {
       System.out.println("flag가 true고, number값은 1입니다.");
   } else if (number ==2) {
       System.out.println("flag가 true고, number값은 2입니다.");
   } else {
       System.out.println("flag가 true고, number값은 모르겠습니다.");
   }
} else {
    if (number == 1) {
       System.out.println("flag가 false고, number값은 1입니다.");
    } else if (number ==2) {
        System.out.println("flag가 false고, number값은 2입니다.");
    } else {
       System.out.println("flag가 false고, number값은 모르겠습니다.");
    }
  • flag가 true고, number값은 2입니다.가 출력(flag = true, number = 2로 주어졌기 때문에)


가위바위보 만들기

import java.util.Objects;
import java.util.Scanner;
public class W13 {
    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();
        // 두 개의 값을 비교하는 메서드 -> Objects.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("A와 B는 비겼습니다.");
            } 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("A와 B는 비겼습니다.");
            } else {
                System.out.println("B가 이상한 값을 입력했습니다.");
            }
        } else {
            System.out.println("A가 이상한 값을 입력했습니다.");
        }
    }
}
  • A 입력 : 바위, B 입력 : 보 => B가 이겼습니다. 출력

  • A 입력 : 바위, B 입력 : 보자기 => B가 이상한 값을 입력했습니다. 출력

0개의 댓글