switch ~ case ~ break문
String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");
javax.swing 에서 제공하는 라이브러리
다음과 같은 폼을 제공해 준다
int birthMonth = Integer.parseInt(input); //int 형으로 변경
JOptionPane.showInputDialog는 String 형으로 입력 받기 때문에 switch 안에서
태어난 달을 입력받기 위해서 int 형으로 값을 형변환 해주어야함
Integer.parseInt() 를 사용해서 형변환이 가능하다
switch (입력 값) {
case (조건):
//조건 만족시, 원하는 결과 작성
break;
default:
//만족하는 결과가 없을 경우, 원하는 결과 작성
break;
}
break를 해주지 않으면 멈추지 않고 마지막 결과를 출력하기 때문에
반드시 break 를 넣어주어야한다
( 방법 1)
package p03_method;
import javax.swing.*;
import java.util.Scanner;
public class Ex08switchcase {
public static void main(String[] args) {
String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");
int birthMonth = Integer.parseInt(input); //int 형으로 변경
String result = "";
//switch(입력 받은 값)
switch (birthMonth) {
case 12, 1, 2:
result = "겨울";
break;
case 3, 4, 5:
result = "봄";
break;
case 6, 7, 8:
result = "여름";
break;
case 9, 10, 11:
result = "가을";
break;
default:
result = "계절";
break;
}
System.out.printf("입력 받은 월 : %d월, %s \n",birthMonth,result);
}
}
( 방법 2)
result = switch (birthMonth) {
case 12, 1, 2 -> "겨울";
case 3, 4, 5 -> "봄";
case 6, 7, 8 -> "여름";
case 9, 10, 11 -> "가을";
default -> "계절";
};
(방법 3)
public class Ex08switchcase {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");
int birthMonth = Integer.parseInt(input); //int 형으로 변경
String result = "";
//switch(입력 받은 값)
switch (birthMonth) {
case 12: case 1: case 2:
result = "겨울";
break;
case 3: case 4: case 5:
result = "봄";
break;
case 6: case 7: case 8:
result = "여름";
break;
case 9: case 10: case 11:
result = "가을";
break;
default:
result = "계절";
break;
}
System.out.println(result);
}
}
String familyName = input.substring(0, 1);
substring (시작 위치,시작 위치에서 몇번째 글자 까지 받아올 것인지)
familyName 안에는 (ex) "강호동" -> "강" 이 들어감
package p03_method;
import javax.swing.*;
public class Ex08switchcase {
public static void main(String[] args) {
String input = JOptionPane.showInputDialog("당신이 태어난 달 입력 :");
int birthMonth = Integer.parseInt(input); //int 형으로 변경
input = JOptionPane.showInputDialog("당신의 이름을 입력 : ");
//substring (시작 위치,시작 위치에서 몇번째 글자 까지 받아올 것인지)
String familyName = input.substring(0, 1);
switch (familyName) {
case "강":
System.out.println("Kang");
break;
case "이":
System.out.println("Lee");
break;
case "박":
System.out.println("Park");
break;
}
}
}
For 문(초기값, 조건식, 증감식)
비교적 횟수에 대한 예측이 가능할 때 사용함
package p03_method;
public class Ex09For {
public static void main(String[] args) {
int sum = 0; //지역변수는 반드시 초기화
//반복문을 구현할 때,
//1. 패턴을 찾아라
//2. 초기값, 조건식, 증감식 을 적용하여 구현
for (int i = 0; i < 10; i++) sum = sum + i;
System.out.println(sum);
sum =0;
for (int i = 9; i >= 0; --i)
sum = sum + i;
System.out.println(sum);
}
}
package p03_method;
import javax.swing.*;
public class Ex09For {
public static void main(String[] args) {
DanPrint dPrint = new DanPrint();
String input = JOptionPane.showInputDialog("출력 원하는 단을 입력하세요!");
dPrint.print_dan(Integer.parseInt(input));
System.out.print("------------------------------------\n");
dPrint.printAllDan();
}
}
class DanPrint {
void print_dan(int dan) {
System.out.println(dan + "단");
for (int i = 1; i < 10; i++) {
System.out.printf("%d * %d = %2d\n", dan, i, dan * i);
}
}
void printAllDan() {
for (int i = 2; i < 10; i += 3) {
for (int j = 1; j < 10; j++) {
for (int k = 0; k < 3; k++) {
if(i+k != 10){
System.out.printf("%d * %d = %2d \t",
i + k, j, (i + k) * j);
}
}
System.out.println();
}
System.out.println();
}
}
}
int i=0;
for( ; ;){
if(i>10) break;
System.out.println(i++);
}
for(int k=10, j=0; j <10 || k>0 ; j++, k--)
{
//인자 안, 초기값, 조건문, 증감식 안에 2개 이상 받을 수있음
}
for( ; ;) 초기값, 조건, 증감식이 없어도 사용이 가능함
while == true 랑 같아서 반드시 break; 문이 필요
break ; 자신이 속한 반복문을 벗어남
package p03_method;
public class Ex10while {
public static void main(String[] args) {
//조건, 명령
int i = 0;
int sum = 0;
while (i < 10) {
// sum +=i;
// i++;
sum += i++;
}
i = 2;
int j = 1;
while (j < 10) {
i = 2;
while (i < 10) {
System.out.printf("%d * %d = %2d \t", i, j, i++ * j);
}
j++;
System.out.println();
}
}
}
[ 랜덤 숫자 맞추기, 간단한 게임 만들기]
System.out.println("내 마음의 숫자를 맞춰봐 (1~100)");
int random = (int)(Math.random()*100)+1;
int count = 0;
System.out.println(random);
while(true){
int answer =Integer.parseInt(JOptionPane.showInputDialog("숫자를 입력하세요! (1~100)"));
if(random == answer){
System.out.printf("정답 입니다! 정답은 %d 시도 횟수 : %d\n",answer,count);
break;
}
else if(random > answer){
count++;
System.out.printf("%d 보다 값이 큽니다! 시도 횟수 : %d\n",answer,count);
}
else if(random < answer){
count++;
System.out.printf("%d 보다 값이 작습니다! 시도 횟수 : %d\n",answer,count);
}
}
정답을 맞추면 새로운 게임으로 시작
Q or q 를 입력하면 게임 종료!
System.out.println("=======내 마음의 숫자를 맞추기 게임=======");
boolean stop = false;
while (true) {
int random = (int) (Math.random() * 100) + 1;
if (stop) break;
while (true) {
String input = JOptionPane.showInputDialog("숫자를 입력하세요(종료하려면 Q,q)");
if (input.toLowerCase().equals("q")) {
stop = true;
break;
} else {
int answer = Integer.parseInt(input);
if (answer > random) {
System.out.println("작습니다.");
} else if (answer < random) {
System.out.println("큽니다");
} else {
System.out.println("정답입니다.");
}
}
}
}
package p03_method;
import javax.swing.*;
public class HomeWork {
//가위바위보게임 만들기
public static void main(String[] args) {
int me;
do {
int you = (int) (Math.random() * 2);
String input = JOptionPane.showInputDialog("가위(0), 바위(1), 보(2) 중에 입력하세요!");
me = Integer.parseInt(input);
int result = me - you;
if(result == -2 || result ==1)
{
System.out.printf("이겼습니다! COM : %d ME: %d ", you, me);
}
else if(result ==0){
System.out.printf("비겼습니다 COM : %d ME: %d ", you, me);
}
else if(result == -1 || result==2 ){
System.out.printf("졌습니다 COM : %d ME: %d ", you, me);
}
try {
me = Integer.parseInt(input);
} catch (Exception e) {
continue;
}
}
while (true);
}
}