가위 바위 보 게임
package ch04;
import java.util.*;
class FlowEx07 {
public static void main(String[] args) {
int user, com;
System.out.print("가위(1),바위(2), 보(3) 중 하나를 입력하세요.>");
Scanner scanner = new Scanner(System.in);
String tmp = scanner.nextLine(); // 화면을 통해 입력받은 내용을 tmp에 저장
user = Integer.parseInt(tmp); // 입력받은 문자열(tmp)를 숫자로 변환
com = (int)(Math.random() * 3) + 1; // 1,2,3중 하나가 com에 저장됨
System.out.println("당신은 "+ user +"입니다.");
System.out.println("컴은 "+ com +"입니다.");
switch(user-com) {
case 2: case -1:
System.out.println("당신이 졌습니다.");
break;
case 1: case -2:
System.out.println("당신이 이겼습니다.");
break;
case 0:
System.out.println("비겼습니다.");
// break; // 마지막 문장이므로 break를 사용할 필요가 없다.
}
} // main의 끝
}
- 0.0 <= Math.random() < 1.0
user / com | 가위(1) | 바위(2) | 보(3) |
---|---|---|---|
가위(1) | 무승부 0 | com 승 -1 | user 승 -2 |
가위(2) | user 승 1 | 무승부 0 | com 승 -1 |
가위(3) | com 승 2 | user 승 1 | 무승부 0 |
주민번호로 성별 판단 해보기_1
xxxxxxxxxx
package ch04;
import java.util.*;
class FlowEx08 {
public static void main(String[] args) {
char gender;
String regNo = "";
System.out.print("당신의 주민번호를 입력하세요.(011231-1111222)>");
Scanner scanner = new Scanner(System.in);
regNo = scanner.nextLine();
// 문자열.charAt(index) : 0 부터 시작
gender = regNo.charAt(7); // 입력받은 번호의 8번째 문자를 gender에 저장
switch(gender) {
case '1':
case '3':
System.out.println("당신은 남자입니다.");
break;
case '2':
case '4':
System.out.println("당신은 여자입니다.");
break;
default:
System.out.println("유효하지 않은 주민등록번호입니다.");;
}
} // main의 끝
}
xxxxxxxxxx
package ch04;
import java.util.*;
class FlowEx09 {
public static void main(String[] args) {
int score = 0;
char grade = ' ';
System.out.print("당신의 점수를 입력하세요.(1~100)>");
Scanner scanner = new Scanner(System.in);
String tmp = scanner.nextLine(); // 화면을 통해 입력받은 내용을 tmp에 저장
score = Integer.parseInt(tmp); // 입력받은 문자열(tmp)를 숫자로 변환
switch(score) {
case 100: case 99: case 98: case 97: case 96:
case 95: case 94: case 93: case 92: case 91:
case 90 :
grade = 'A';
break;
case 89: case 88: case 87: case 86:
case 85: case 84: case 83: case 82: case 81:
case 80 :
grade = 'B';
break;
case 79: case 78: case 77: case 76:
case 75: case 74: case 73: case 72: case 71:
case 70 :
grade = 'C';
break;
default :
grade = 'F';
} // end of switch
System.out.println("당신의 학점은 "+ grade +"입니다.");
} // main의 끝
}
주민번호로 성별 판단 해보기_2 (if 문이 더 적합)
아니면 조금더 수학적인 방법으로 구현
xxxxxxxxxx
package ch04;
import java.util.*;
class FlowEx10 {
public static void main(String[] args) {
int score = 0;
char grade = ' ';
System.out.print("당신의 점수를 입력하세요.(1~100)>");
Scanner scanner = new Scanner(System.in);
String tmp = scanner.nextLine(); // 화면을 통해 입력받은 내용을 tmp에 저장
score = Integer.parseInt(tmp); // 입력받은 문자열(tmp)를 숫자로 변환
switch(score/10) {
case 10:
case 9 :
grade = 'A';
break;
case 8 :
grade = 'B';
break;
case 7 :
grade = 'C';
break;
default :
grade = 'F';
} // end of switch
System.out.println("당신의 학점은 "+ grade +"입니다.");
} // main의 끝
}
주민번호로 성별 판단 해보기_3 (switch 문의 중첩)
package ch04;
import java.util.*;
class FlowEx11 {
public static void main(String[] args) {
char gender;
String regNo = "";
System.out.print("당신의 주민번호를 입력하세요.(011231-1111222)>");
Scanner scanner = new Scanner(System.in);
regNo = scanner.nextLine();
gender = regNo.charAt(7); // 입력받은 번호의 8번째 문자를 gender에 저장
switch(gender) {
case '1':
case '3':
switch(gender) {
case '1':
System.out.println("당신은 2000년 이전에 출생한 남자입니다.");
break;
case '3':
System.out.println("당신은 2000년 이후에 출생한 남자입니다.");
}
break; // 이 break문을 빼먹지 않도록 주의
case '2':
case '4':
switch(gender) {
case '2':
System.out.println("당신은 2000년 이전에 출생한 여자입니다.");
break;
case '4':
System.out.println("당신은 2000년 이후에 출생한 여자입니다.");
break;
}
break;
default:
System.out.println("유효하지 않은 주민등록번호입니다.");;
}
} // main의 끝
}
이전글
'JAVA > 조건문과 반복문' 카테고리의 다른 글
조건문과 반복문_3 (0) | 2018.08.14 |
---|---|
조건문과 반복문_1 (1) | 2018.08.14 |