새소식

Java

[Java] 자바의 조건문: if, if-else, else if 등의 개념과 예시

  • -

 

 

 

조건문 if

 

 

 

1)   if 구문

 

① 개념

 

조건문을 구현하기 위해 사용되는 키워드

 

조건식이 참이면 if 블록 안의 코드가 실행되고, 조건식이 거짓이면 if 블록을 건너뛰고 다음 코드가 실행됩니다.

 

 

 기본 구조

 

if (조건식) {
    // 조건이 참인 경우 실행되는 코드
}

 

 조건식

boolean 값 표현식으로 사용

조건식이 true로 평가되면 if 블록 안의 코드가 실행됩니다.

조건식은 비교 연산자, 논리 연산자, 메소드 호출 등을 사용하여 생성할 수 있습니다.

 

※ 논리연산자

  • AND ( && ) : 양쪽의 조건식이 모두 참(true)인 경우에만 전체 표현식을 참으로 평가
  • OR ( || ) : 양쪽의 조건식 중 하나 이상이 참(true)인 경우 전체 표현식을 참으로 평가
  • NOT ( ! ) : 단항 연산자로, 조건식의 결과를 반대로 뒤집습니다. (참 → 거짓, 거짓 → 참으로 변경)

 

 

 예시

 

● 예시 1 (비교연산자를 이용한 if)

int num1 = 10;
int num2 = 5;

if (num1 > num2) {
    System.out.println("num1이 num2보다 큽니다.");
}



● 예시 2 (논리연산자를 이용한 if)

int age = 25;
boolean isStudent = true;

if (age >= 18 && isStudent) {
    System.out.println("성인이면서 학생입니다.");
}

 

● 예시 3 (논리연산자를 이용한 if)

    public static boolean isEven(int number) {
        return number % 2 == 0;
    }
}
// isEven이라는 메소드 정의, 2로 나뉘어지면 true를, 안나뉘어지면 false 값을 반환


public class Main {
    public static void main(String[] args) {
        int number = 10;

        if (isEven(number)) {
            System.out.println(number + "는 짝수입니다.");
        } else {
            System.out.println(number + "는 홀수입니다.");
        }
    }
// if 구문에서 isEven이라는 메소드를 호출해서 if 구문을 사용함.




● 예시 4

Player.java

<코드>
public class Player {
    private String[] inventory;

    public Player(String[] inventory) {
        this.inventory = inventory;
    }

    public boolean hasItem(String item) {
        for (String currentItem : inventory) {
            if (currentItem.equals(item)) {
                return true;
            }
        }
        return false;
    }
}

<코드 분석>
public class Player {
// Player 클래스 선언
    private String[] inventory;
// String 배열 inventory를 변수로 선언

    public Player(String[] inventory) {
        this.inventory = inventory;
    }
//생성자 선언


    public boolean hasItem(String item) {
// 문자열 item을 변수로 받는 boolean 타입을 반환하는 hasItem 메소드 선언
        for (String currentItem : inventory) {
// for-each 반복문을 사용하여 inventory 배열을 순회
// currentIteminventory 배열의 각 요소를 차례로 가져오는 변수

            if (currentItem.equals(item)) {
                return true;
            }
        }
        return false;
    }
}

 

Main.java

<코드>
public class Main {
    public static void main(String[] args) {
        String[] playerInventory = {"Infinity Blade", "B.F. Sword", "Zeal"};
        Player player = new Player(playerInventory);

        if (player.hasItem("Infinity Blade")) {
            System.out.println("플레이어는 무한의 대검을 가지고 있습니다.");
        }
    }
}
<코드 분석>
public class Main {
    public static void main(String[] args) {
// main 메소드를 선언
        String[] playerInventory = {"Infinity Blade", "B.F. Sword", "Zeal"};
// playerInventory라는 이름의 문자열 배열 변수를 선언 -> 해당 변수를 "Infinity Blade", "B.F. Sword", "Zeal"로 초기화
        Player player = new Player(playerInventory);
// Player 클래스의 인스턴스를 생성 -> playerInventory 배열을 생성자에 전달하여 Player 객체를 초기화

        if (player.hasItem("Infinity Blade")) {
// if 구문안에 조건식인 '플레이어가 무한의 대검을 가지고 있을 경우'의 만족 여부를 묻고있습니다.
            System.out.println("플레이어는 무한의 대검을 가지고 있습니다.");
        }
    }
}

 

 

 

 

 

2)   if else 구문

 

① 개념

 

조건식이 이면 if 블록 안의 코드를 실행하고,

 

조건식이 거짓이면 else 블록 안의 코드를 실행

 

이를 통해 두 가지 다른 경로의 실행을 지정할 수 있습니다.

 

 

 

 

 기본 구조

if (조건식) {
    // 조건이 참인 경우 실행되는 코드
} else {
    // 조건이 거짓인 경우 실행되는 코드
}

 

 

 

 

③ 예시

String username = "admin";
String password = "password";

if (username.equals("admin") && password.equals("password")) {
    System.out.println("로그인 성공");
} else {
    System.out.println("로그인 실패");
}

 

username이 'admin', password가 'password'이면 로그인 성공 (if)

아니면 로그인실패가 나오게 함 (else)

 

 

 

 

3)   else if 구문

 

① 개념

 

else-if 문은 여러 개의 조건을 순차적으로 평가하며, 첫 번째로 참인 조건식을 만나면 해당하는 코드 블록을 실행합니다.


이미 실행된 이전 조건식의 조건이 참이었다면, 이후의 else-if 문은 평가되지 않고 건너뜁니다.


else-if 문의 조건식이 모두 거짓인 경우 else 문의 코드 블록이 실행될 수 있습니다.

 

 

 

 기본 구조

if (조건식1) {
    // 조건식1이 참일 경우 실행되는 코드
} else if (조건식2) {
    // 조건식2가 참일 경우 실행되는 코드
} else if (조건식3) {
    // 조건식3이 참일 경우 실행되는 코드
} else {
    // 위의 모든 조건식이 거짓일 경우 실행되는 코드
}

 

 

 

③ 예시

int age = 18;

if (age < 13) {
    System.out.println("어린이");
} else if (age < 20) {
    System.out.println("청소년");
} else if (age < 30) {
    System.out.println("청년");
} else {
    System.out.println("성인");
}

 

나이가 18세,

첫조건문(if)에서 13세 미만이 아니라 건너뛰고,

두번째 조건문(else if age <20)에 해당하므로 '청소년'이 출력됩니다.

 

 

 

 

 

 

 

 

4)   중첩 조건문

 

① 개념

 

조건문 안에 다른 조건문을 포함시키는 것

 

중첩 조건문은 다중 조건을 다루거나, 조건문의 결과에 따라 추가적인 조건을 검사해야 할 때 유용합니다.

 

 

 

 예시

● 예시1

int x = 10;
int y = 5;

if (x > 0) {
    if (y > 0) {
        System.out.println("x와 y는 모두 양수입니다.");
    // x 와 y 둘다 확인하는 과정
    
    } else {
   // y가 0보다 크지 않다면
        System.out.println("x는 양수이지만 y는 양수가 아닙니다.");
    }
} else {
// x가 0보다 크지 않다면
    System.out.println("x는 양수가 아닙니다.");
}

 

 

● 예시2

int score = 85;

if (score >= 90) {
    if (score == 100) {
        System.out.println("만점입니다! 훌륭해요!");
    // 점수가 90점 이상이고 100점에 해당함
    
    } else {
    // 점수가 90점 이상이지만 100점은 아님
        System.out.println("A 학점입니다. 잘했어요!");
    }
} else {
// 점수가 90점 미만임
    if (score >= 80) {
    //점수가 90점 미만이지만 80점 이상임 (else 안에 또 if가 있음)
        System.out.println("B 학점입니다. 괜찮아요!");
    } else {
        System.out.println("C 학점 또는 그 이하입니다. 조금 더 노력하세요!");
    }
}

 

 

 

 

 

 

 

 

 

2023.07.11 - [Java] - public static void main(String[] args)가 무엇일까?

 

 

 

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.