SwitchEx01
/*
* switch문
* → switch (값) {
* case 상수값 :
* 실행 코드
* break; ← switch 종료
* ....
* default :
* 실행 코드
* }
*
* > switch 문안의 값과 정확하게 일치하는 case 값을 찾아서 해당 지역의 코드를 실행.
* → switch : 정수, 문자, 문자열
* case : 상수만 사용가능 ( 변수 x )
* 하나의 case 가 끝나는 마지막에는 'break' 문을 사용하여 종료.
* default : 매칭되는 case 값이 없을 때 실행 할 코드가 있으면 사용. ( 사용 0 , X )
*
*/
package ch05_switch;
public class SwitchEx01 {
public static void main(String[] args) {
int num = 2;
System.out.println("num : " + num);
System.out.println();
switch(num) {
case 1:
System.out.println("1 - one");
break;
case 2:
System.out.println("2 - two");
break;
case 3:
System.out.println("3 - three");
break;
default:
System.out.println("?.?");
}
}
}
SwitchEx02
package ch05_switch;
import java.util.Scanner;
public class SwitchEx02 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("Java : j , Python : p >> ");
char subject = sc.next().charAt(0);
System.out.println();
// 실행 코드가 똑같을 때, break 문 생략 가능.
switch (subject) {
case 'j':
case 'J':
System.out.println("Java 를 선택하셨습니다..");
break;
case 'p':
case 'P':
System.out.println("Python 을 선택하셨습니다..");
break;
default:
System.out.println("없는 과목입니다..");
}
sc.close();
}
}
SwitchEx03
package ch05_switch;
public class SwitchEx03 {
public static void main(String[] args) {
String member = "gold";
int sale = 0;
switch(member) {
case "vip":
sale = 20;
break;
case "gold":
sale = 10;
break;
case "normal":
sale = 5;
break;
}
System.out.println("회원 등급 : " + member);
System.out.println("할인 : " + sale + '%');
System.out.println();
// if문으로 코드를 작성했을 때
sale = 0;
if (member.equals("vip")) {
sale = 20;
}
else if (member.equals("gold")) {
sale = 10;
}
else if (member.equals("normal")) {
sale = 5;
}
System.out.println("회원 등급 : " + member);
System.out.println("할인 : " + sale + '%');
}
}
QuizSwitch
package ch05_switch;
import java.util.Scanner;
public class QuizSwitch {
public static void main(String[] args) {
// 버스 단말기 코드를 작성하세요
// - 요금 : 일반(1500), 학생(920)
// 버스 카드 잔액, 사용 카드(일반, 학생)을 설정합니다
// 일반, 학생 카드인지를 확인해서, 정상이면 차감된 금액을 알려주세요
// Ex) 잔액 : 2000 원
// 일반, 학생 > 일반
// 삑! 잔액 : 500 원
Scanner sc = new Scanner(System.in);
System.out.print("잔액 : ");
int money = sc.nextInt();
System.out.print("일반, 학생 > ");
String user = sc.next();
int general = 1500;
int student = 920;
boolean check = true; // 진행 확인 ( true : 정상, false : 오류 )
switch (user) {
case "학생":
if (money >= student) {
money -= student;
}
else {
System.out.println("잔액이 부족합니다..");
check = false;
}
break;
default:
if (money >= general) {
money -= general;
}
else {
System.out.println("잔액이 부족합니다..");
check = false;
}
}
if (check) {
System.out.println("삑 ! 잔액 : " + money + "원");
}
// 간단한 사칙연산 계산기 코드를 작성하세요
// Ex) + , - , * , / 선택 >> *
// 첫번째 숫자 입력 > 12
// 두번째 숫자 입력 > 2
// 12 * 2 = 24
char opt = ' '; // 연산자
int dataA = 0; // 데이터
int dataB = 0;
double res = 0; // 결과
boolean run = true; // 진행 확인
System.out.print("+ , - , * , / 선택 >> ");
opt = sc.next().charAt(0);
if(opt == '+' || opt == '-' || opt =='*' || opt =='/') {
System.out.print("첫번째 숫자 입력 > ");
dataA = sc.nextInt();
System.out.print("두번째 숫자 입력 > ");
dataB = sc.nextInt();
switch(opt) {
case '+':
res = dataA + dataB; break;
case '-':
res = dataA - dataB; break;
case '*':
res = dataA * dataB; break;
case '/':
if(dataB > 0) {
res = (double)dataA / (double) dataB;
} else {
run = false;
}
break;
}
if(run) {
System.out.println(dataA + " " + opt + " " + dataB + " = " + res);
} else {
System.out.println("계산 오류입니다..");
}
} else {
System.out.println("잘못된 연산자입니다..");
}
// 월을 입력받아서 해당 월이 몇일까지 있는지를 알려주는 코드를 작성하세요
// - 2월은 "28일 or 29일" 출력으로 처리하세요
// Ex) 월 입력 > 3
// 31일
System.out.print("월 입력 > ");
int month = sc.nextInt();
String day = "31일";
if (month > 0 && month < 13 ) {
switch(month) {
case 4:
case 6:
case 5:
case 9:
case 11:
day = "30일";
break;
case 2:
day = "28일 또는 29일";
break;
}
System.out.println(day);
}
else {
System.out.println("잘못된 입력입니다..");
}
sc.close();
}
}