[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 배열을 순회
// currentItem은 inventory 배열의 각 요소를 차례로 가져오는 변수
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)가 무엇일까?
'Java' 카테고리의 다른 글
[Java] @GenerativeValue의 개념과 예시 (0) | 2023.07.14 |
---|---|
[Java] 코드 예제 Part.1) JPA 학습 전 흉내내보기 (0) | 2023.07.12 |
[Java] public static void main(String[] args)가 무엇일까? (0) | 2023.07.11 |
[Java] 메소드 선언 Method Declaration (0) | 2023.07.11 |
[Java] List 리스트의 개념과 종류 (0) | 2023.07.03 |
소중한 공감 감사합니다