if, switch 개념
if문
- if(조건)
- 특정 조건에 따라 다른 연산을 수행하고 싶을때 사용하는 문맥입니다.
- 기본적인 조건에 따른 연산을 수행하기 위해 if(조건) { 연산 } 형태로 사용합니다.
- if 의 소괄호() 안의 조건이 boolean 값 true 를 만족하면 중괄호 {} 안의 연산을 수행합니다.
- if문 코드
더보기예시
// 조건문 boolean flag1 = true; if (flag1) { System.out.println("flag1 값은 true 입니다."); // flag 값은 true 입니다. 출력 }
- if(조건)-else
- if문 조건이 거짓일 경우에 따른 연산을 수행하기 위해 else { 연산 } 형태로 사용합니다.
- if 의 소괄호() 안의 조건이 boolean 값 false 를 만족하면 else 의 중괄호 {} 안의 연산을 수행합니다.
- if - else 코드
더보기예시
// 조건문 with else boolean flag2 = false; if (flag2) { System.out.println("flag2 값은 true 입니다."); // 미출력 } else { System.out.println("flag2 값은 false 입니다."); // flag 값은 false 입니다. 출력 }
- if(조건)-else if(조건)
- if문 조건이 거짓일 경우에 다시한번 다른조건으로 체크해서 참일 경우에 연산을 수행하기 위해 else if(조건) { 연산 } 형태로 사용합니다.
- else if 의 소괄호() 안의 조건이 boolean 값 true 를 만족하면 else if 의 중괄호 {} 안의 연산을 수행합니다.
- if - else if 코드
더보기예시
// 조건문 with else if int number1 = 2; if (number1 == 1) { System.out.println("number1 값은 1 입니다."); // 미출력 } else if (number1 == 2) { System.out.println("number1 값은 2 입니다."); // number 값은 2 입니다. 출력 } else { System.out.println("number1 값은 모르는 값입니다."); // 미출력 }
- if 문에 else, else if 로 해결할 수 없는 복잡한 조건이 있을 수 있습니다.
- 이럴때 중첩해서 if 문 또는 else if문 또는 else 문 안에 if 문을 넣을 수 있습니다.
- 중첩 if
더보기예시
// 중첩 조건문 boolean flag3 = true; int number2 = 2; if (flag3) { if (number2 == 1) { System.out.println("flag3 값은 true, number2 값은 1 입니다."); // 미출력 } else if (number2 == 2) { System.out.println("flag3 값은 true, number2 값은 2 입니다."); // flag 값은 true, number 값은 2 입니다. 출력 } } else { if (number2 == 1) { System.out.println("flag3 값은 false, number2 값은 1 입니다."); // 미출력 } else if (number2 == 2) { System.out.println("flag3 값은 false, number2 값은 2 입니다."); // 미출력 } }
- 가위바위보 게임 만들기
- 입력
- 첫번째 입력값으로 A 유저가 낸 가위바위보
- 두번째 입력값으로 B 유저가 낸 가위바위보
- 출력
- A, B 유저중에 누가 이겼는지 출력중첩 if문 활용
-
더보기
package Second; import java.util.Objects; import java.util.Scanner; public class Quiz1 { // if 문을 사용하여 가위바위보 게임 만들어 보기 public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.print("A 입력 : "); String aHand = sc.nextLine(); // A 입력 System.out.print("B 입력 : "); String bHand = sc.nextLine(); // B 입력 // 두 개의 값을 비교하는 메서드 -> Objects.equals(좌, 우) : 좌 우가 같은 경우 true, 다른 경우 false if (Objects.equals(aHand, "가위")) { // 값을 비교하는 Obects.equals() 메서드 사용 if (Objects.equals(bHand, "가위")) { System.out.println("A 와 B 는 비겼습니다."); // 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 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 는 비겼습니다."); } } // 입/출력 예시 // A 입력 : 가위 // B 입력 : 보 // A 가 이겼습니다. } }
- 중첩 if
switch문
- switch 문은 case 문과 함께 사용하며 if문 보다 좀더 가독성이 좋은 조건문 표현식 입니다.
- switch(피연산자) { case(조건): (연산) } 이러한 형태로 많이 쓰입니다.
- switch 피연산자가 case 조건을 만족하면 case: 뒤에 명시되어 있는 연산을 수행합니다.
- case(조건): (연산) 은 여러개를 설정할 수 있습니다.
- 각 case 의 연산문 마지막에는 break; 를 꼭 넣어줘야 합니다
- break; 문은 해당 case 의 연산문이 끝났다는것을 알려주어 switch 문을 종료시켜줍니다.
- 만약 case 의 연산문 마지막에 break; 를 안넣어주면 case 의 연산문이 안 끝났기 때문에 switch 문 블럭이 끝날때 까지 전부 실행됩니다
- switch문 중괄호 안의 제일 마지막에 default: (연산) 을 명시해주어 case 조건들이 모두 만족하지 않을때 수행할 연산을 정해주어야 합니다.
- default: (연산) 은 아무것도 만족하지 않을때 수행하는 것이라, 없다면 생략해도 됩니다.
- if문과 switch문의 차이점
- 차이점1. 복합조건
- if 문은 복합조건을 지원합니다.
- 복합조건 : 괄호()안에 조건 여러개를 지정하여 조건문을 수행할 수 있습니다.
- switch 문은 피연산자 한개에 대한 조건만 지원합니다.
- if 문은 복합조건을 지원합니다.
- 차이점2. 코드중복
- if 문은 상대적으로 코드중복이 많습니다.
- switch 문은 코드중복이 적습니다.
- switch문 작성법 및 if문과 차이점
더보기예시
package Second; public class SwitchGrammar { public static void main(String[] args) { // switch/case 문 int month = 8; String monthString = ""; switch (month) { case 1: monthString = "1월"; break; case 2: monthString = "2월"; break; case 3: monthString = "3월"; break; case 4: monthString = "4월"; break; case 5: monthString = "5월"; break; case 6: monthString = "6월"; break; case 7: monthString = "7월"; break; case 8: monthString = "8월"; break; case 9: monthString = "9월"; break; case 10: monthString = "10월"; break; case 11: monthString = "11월"; break; case 12: monthString = "12월"; break; default: monthString = "알수 없음"; } System.out.println(monthString); // 8월 출력 // if vs switch // switch 문 실습 코드를 if 문으로 바꿔보겠습니다. // if 로 변환 if (month == 1) { monthString = "1월"; } else if (month == 2) { monthString = "2월"; } else if (month == 3) { monthString = "3월"; } else if (month == 4) { monthString = "4월"; } else if (month == 5) { monthString = "5월"; } else if (month == 6) { monthString = "6월"; } else if (month == 7) { monthString = "7월"; } else if (month == 8) { monthString = "8월"; } else if (month == 9) { monthString = "9월"; } else if (month == 10) { monthString = "10월"; } else if (month == 11) { monthString = "11월"; } else if (month == 12) { monthString = "12월"; } else { monthString = "알수 없음"; } System.out.println(monthString); // 8월 출력 } }
- switch문 작성법 및 if문과 차이점
'JAVA' 카테고리의 다른 글
[JAVA] - break, continue (0) | 2024.01.08 |
---|---|
[JAVA] - 반복문 (for, while) (0) | 2024.01.08 |
[JAVA] - 연산자 (2) | 2024.01.07 |
[JAVA] - 자바 2차원 배열 (0) | 2024.01.06 |
[JAVA] - 자바 기초 (0) | 2024.01.03 |