목차
- if문
- switch문
1. if문
단독 if문
- 괄호 안에 조건식을 명시한다: if(조건식)
- 조건식 결과가 true면 블럭 안의 내용을 실행한다.
- false이면 해당 내용을 실행하지 않고 지나간다.
package com.reminder.conditional;
import java.util.Scanner;
public class IfStatement {
public void evenChecker() {
Scanner scanner = new Scanner(System.in);
System.out.print("숫자 하나를 입력하세요. > ");
int num = scanner.nextInt();
if(num > 0) {
if(num % 2 == 0) {
System.out.println("입력하신 숫자는 양수이면서 짝수입니다.");
}
System.out.println("프로그램을 종료합니다.");
}
}
}
package com.reminder.conditional;
public class Application {
public static void main(String[] args) {
IfStatement test1 = new IfStatement();
test1.evenChecker();
}
}
숫자 하나를 입력하세요. > 14
입력하신 숫자는 양수이면서 짝수입니다.
프로그램을 종료합니다.
숫자 하나를 입력하세요. > 15
프로그램을 종료합니다.
if~else문
- if문과 else문 둘 중 하나만 실행하게 된다.
- 여기서 if(조건식) 조건식은 하나이다.
- A 또는 B라는 값을 기대할 수 있다. 조건식에 대한 값이 true이면 if문 안의 내용을 실행하고 false이면 else문 안의 내용을 출력한다.
package com.reminder.conditional;
import java.util.Scanner;
public class IfElseStatement {
public void oddOrEven() {
/* 홀짝 확인 */
Scanner scanner = new Scanner(System.in);
System.out.print("정수를 하나 입력하세요. > ");
int num = scanner.nextInt();
if(num % 2 != 0) {
System.out.println("입력하신 정수는 홀수입니다.");
} else {
System.out.println("입력하신 정수는 짝수입니다.");
}
System.out.println("프로그램을 종료합니다.");
}
}
package com.reminder.conditional;
public class Application {
public static void main(String[] args) {
IfElseStatement test2 = new IfElseStatement();
test2.oddOrEven();
}
}
정수를 하나 입력하세요. > 151
입력하신 정수는 홀수입니다.
프로그램을 종료합니다.
if~else if~else문
- 중첩 if문에서 (조건식)은 여러 개이지만 만족하는 것 하나만 실행되고 끝난다.
- 모두 false일 때면 마지막 else문이 실행된다.
- 금도끼, 은도끼, 쇠도끼 예시이다.
package com.reminder.conditional;
import java.util.Scanner;
public class IfElseIfStatement {
public void woodMan() {
Scanner scanner = new Scanner(System.in);
System.out.println("산신령이 나타나 물었다. 어느 도끼가 네 도끼냐?");
System.out.print("1. 금도끼, 2. 은도끼, 3. 쇠도끼? > ");
int ax = scanner.nextInt();
if(1 <= ax && ax <= 3) {
if(ax == 1) {
System.out.println("거짓말! 너에게는 아무 도끼도 줄 수 없다!");
} else if(ax == 2) {
System.out.println("거짓말을 하고 있구나. 썩 돌아가거라!");
} else {
System.out.println("정직하구나. 너에게 세 가지 도끼를 모두 주마.");
}
System.out.println("산신령은 다시 연못 속으로 사라졌다...");
}
}
}
산신령이 나타나 물었다. 어느 도끼가 네 도끼냐?
1. 금도끼, 2. 은도끼, 3. 쇠도끼? > 1
거짓말! 너에게는 아무 도끼도 줄 수 없다!
산신령은 다시 연못 속으로 사라졌다...
- 점수로 학점 산출하기 예시이다.
- 각 점수대의 중간 점수 이상은 +를 추가 반영한다. 100점 학생도 A+ 학점을 받을 수 있도록 (score % 10 >= 5 && 60 <= score || score == 100) 조건문을 이와 같이 작성한다.
package com.reminder.conditional;
import java.util.Scanner;
public class IfElseIfStatement {
public void grader() {
Scanner scanner = new Scanner(System.in);
System.out.print("학생 이름을 입력하세요. > ");
String name = scanner.nextLine();
System.out.print("점수를 입력하세요. > ");
int score = scanner.nextInt();
String grade = "";
if(score >= 90) {
grade = "A";
} else if(score >= 80) {
grade = "B";
} else if(score >= 70) {
grade = "C";
} else if(score >= 60) {
grade = "D";
} else {
grade = "F";
}
if(score % 10 >= 5 && 60 <= score || score == 100) {
grade += "+";
}
System.out.println(name + "학생의 점수는 " + score + "점이고, 학점은 " + grade + "입니다.");
}
}
package com.reminder.conditional;
public class Application {
public static void main(String[] args) {
IfElseIfStatement test3 = new IfElseIfStatement();
test3.woodMan();
test3.grader();
}
}
학생 이름을 입력하세요. > 김코딩
점수를 입력하세요. > 100
김코딩학생의 점수는 100점이고, 학점은 A+입니다.
✅ 조건문 if의 흐름을 이해할 수 있다.
✅ if 문의 문법을 이해하고 사용할 수 있다.
✅ if-else 문의 문법을 이해하고 사용할 수 있다.
✅ if-else-if 문의 문법을 이해하고 사용할 수 있다.
2. switch문
- if문은 괄호에 작성한 (조건식) 토대로 true/false를 가리지만, switch문에서는 (값)이 들어간다.
- 여러 개의 비교값 중 조건이 일치하는 로직을 실행하도록 하는 것은 if-else-if 구문과 유사하다. 때문에 switch문과 if문은 어느 정도 호환이 가능하다.
- 하지만 switch문은 정수, 문자, 문자열 형태의 값만 비교 가능하다.
- 실수, 논리, 대소비교가 불가하다.
❗ switch(비교할변수)
❗ case 비교값 :
비교값에는 리터럴만 넣을 수 있다. 변수를 취급하지 않는다.
break;
- break;는 코드 수행을 멈추게 한다.
- 의도적으로 계속 판단하고자 하는 경우가 아니라면 알맞은 코드를 실행한 뒤에 멈추기 위해서 break;를 작성해야 한다.
default:
- default문은 앞서 서술된 case와 일치하는 게 없을 경우 실행된다. 일치하는 값이 없을 때 실행되는 구문이다.
- default문은 생략될 수 있다. 생략된 경우에는 그 이유를 주석으로 달아두는 것이 좋다.
- 정수와 연산기호를 입력 받아 식을 세우는 계산기 예시이다.
- 나누기를 0으로 하면 java.lang.ArithmeticException 오류 발생한다. 산술 진행이 어렵기 때문이다.
package com.reminder.conditional;
import java.util.Scanner;
public class Switch {
public void calculator() {
Scanner scanner = new Scanner(System.in);
System.out.print("첫 번째 정수 입력 > ");
int first = scanner.nextInt();
System.out.print("두 번째 정수 입력 > ");
int second = scanner.nextInt();
System.out.print("연산기호 입력 > ");
char sign = scanner.next().charAt(0);
int result = 0;
switch(sign) {
case '+' :
result = first + second;
break;
case '-' :
result = first - second;
break;
case '*' :
result = first * second;
break;
case '/' :
result = first / second;
break;
case '%' :
result = first % second;
break;
/* default문 생략 */
}
System.out.println(first + " " + sign + " " + second + " = " + result);
}
}
- 자판기 예시이다. 입력할 수 있는 모든 경우의 수를 포함하고 있다.
package com.reminder.conditional;
import java.util.Scanner;
public class Switch {
public void vendingMachine() {
Scanner scanner = new Scanner(System.in);
System.out.println("======== vending machine ========");
System.out.println("콜라 사이다 환타 핫식스 박카스");
System.out.println("=================================");
System.out.print("음료를 선택하세요 > ");
String drink = scanner.nextLine();
int price = 0;
switch(drink) {
case "콜라" :
price = 500;
break;
case "사이다" :
price = 700;
break;
case "환타" :
price = 1000;
break;
case "핫식스" :
price = 1500;
break;
case "박카스" :
price = 1800;
break;
}
System.out.println("선택하신 음료 " + drink + "는 " + price + "원입니다.");
}
}
package com.reminder.conditional;
public class Application {
public static void main(String[] args) {
Switch test4 = new Switch();
test4.calculator();
test4.vendingMachine();
}
}
======== vending machine ========
콜라 사이다 환타 핫식스 박카스
=================================
음료를 선택하세요 > 사이다
선택하신 음료 사이다는 700원입니다.
✅ 조건문 switch의 흐름을 이해할 수 있다.
✅ switch 문의 문법을 이해하고 사용할 수 있다.
'Java' 카테고리의 다른 글
조건문 수업 Quiz (0) | 2021.12.24 |
---|---|
조건문 수업 practice (0) | 2021.12.24 |
[JAVA] 3-2. Math, Random, Scanner 클래스 (0) | 2021.12.23 |
메소드 수업 practice (0) | 2021.12.23 |
변수 수업 practice (0) | 2021.12.23 |