선택문_1
switch-case
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("첫 번째 정수: ");
int num1 = sc.nextInt();
System.out.println("두 번째 정수: ");
int num2 = sc.nextInt();
System.out.println("연산자 입력(+, -, *, /)");
String op = sc.next();
/*
* nextInt(): int
* nextDouble(): double
* next(): String
* nextBoolean(): boolean
*/
switch(op)
{
case "+":
System.out.printf("%d + %d = %d\n", num1, num2, num1+num2);
break; // break 걸지 않으면 전체가 다 출력 된다
case "-":
System.out.printf("%d - %d = %d\n", num1, num2, num1-num2);
break;
case "*":
System.out.printf("%d * %d = %d\n", num1, num2, num1*num2);
break;
case "/":
if(num2 == 0)
System.out.println("0으로 나눌 수 없다.");
else
System.out.printf("%d / %d = %d\n", num1, num2, num1/num2);
break;
default:
System.out.println("잘못된 연산자입니다.");
}
}
첫 번째 정수:
10
두 번째 정수:
5
연산자 입력(+, -, *, /)
/
10 / 5 = 2
선택문_2
학점 → 과목 3개 → 평균, 총점, 학점 → 등수
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("국어 점수 입력: ");
int kor = sc.nextInt();
System.out.println("영어 점수 입력: ");
int eng = sc.nextInt();
System.out.println("수학 점수 입력: ");
int math = sc.nextInt();
// 국어, 영어, 수학
System.out.println("국어 점수: " + kor);
System.out.println("영어 점수: " + eng);
System.out.println("수학 점수: " + math);
// 총점
System.out.println("총점: " + (kor + eng + math));
// 평균
int avg = (kor + eng + math)/3;
System.out.printf("평균: %.2f\n", (kor + eng + math)/3.0);
// 학점
// 100-90 A, 89-80 B, 79-79 C, 69-60 D .. F
// case 100:99:98:97..
switch(avg/10) // case 문장 최대한 줄이는 방법
{
case 10:
case 9: // 평균 90대
System.out.println("학점: A");
break;
case 8: // 평균 80대
System.out.println("학점: B");
break;
case 7: // 평균 70대
System.out.println("학점: C");
break;
case 6: // 평균 60대
System.out.println("학점: D");
break;
default:
System.out.println("학점: F");
}
}
국어 점수 입력:
80
영어 점수 입력:
90
수학 점수 입력:
98
국어 점수: 80
영어 점수: 90
수학 점수: 98
총점: 268
평균: 89.33
학점: B
선택문_3
// 3, 4, 5 = 봄 / 6, 7, 8 = 여름 / 9, 10, 11 = 가을 / 12, 1, 2 = 겨울
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("달(1-12) 입력: ");
int month = sc.nextInt();
switch(month)
{
case 3: case 4: case 5:
System.out.println("봄");
break;
case 6: case 7: case 8:
System.out.println("여름");
break;
case 9: case 10: case 11:
System.out.println("가을");
break;
case 1: case 2: case 12:
System.out.println("겨울");
break;
}
}
달(1-12) 입력:
5
봄
선택문_4
중첩 switch-case
가위 바위 보
경우의 수
Computer | Player |
0 가위 | 0, 1, 2 |
1 바위 | 0, 1, 2 |
2 보 | 0, 1, 2 |
가위(0), 바위(1), 보(2):
0
컴퓨터: 바위 // 랜덤
사용자: 가위 // 입력
Computer Win!!
public static void main(String[] args) {
final int 가위 = 0; // final: 상수 → 변경할 수 없는 값
final int 바위 = 1;
final int 보 = 2;
// 1. 컴퓨터(난수) → 임의로 추출
int com = (int)(Math.random()*3); // 0, 1, 2
// 2. 사용자 입력
Scanner sc = new Scanner(System.in);
System.out.println("가위(0), 바위(1), 보(2): ");
int player = sc.nextInt();
// 결과 출력
// 컴퓨터
switch(com)
{
case 0:
System.out.println("컴퓨터: 가위");
break;
case 1:
System.out.println("컴퓨터: 바위");
break;
case 2:
System.out.println("컴퓨터: 보");
break;
}
// 사용자
switch(player)
{
case 0:
System.out.println("사용자: 가위");
break;
case 1:
System.out.println("사용자: 바위");
break;
case 2:
System.out.println("사용자: 보");
break;
}
// 결과 출력
switch(com)
{
case 가위:
switch(player)
{
case 가위:
System.out.println("비겼다!!");
break;
case 바위:
System.out.println("Player Win!!");
break;
case 보:
System.out.println("Computer Win!!");
break;
}
break;
case 바위:
switch(player)
{
case 가위:
System.out.println("Computer Win!!");
break;
case 바위:
System.out.println("비겼다!!");
break;
case 보:
System.out.println("Player Win!!");
break;
}
break;
case 보:
switch(player)
{
case 가위:
System.out.println("Player Win!!");
break;
case 바위:
System.out.println("Computer Win!!");
break;
case 보:
System.out.println("비겼다!!");
break;
}
break;
}
}
// if문
if(player == 가위)
System.out.println("Computer Win!!");
if(player == 바위)
System.out.println("비겼다!!");
if(player == 보)
System.out.println("Player Win!!");
반복문_for
public static void main(String[] args) {
// 알파벳 출력(A-Z)
for(char c='A'; c<='Z'; c++)
System.out.println(c);
// 0-9
for(char c='0'; c<='9'; c++)
{
System.out.println(c);
}
// 0-9
for(int i=0; i<=9; i++)
{
System.out.println(i);
}
}
// 사용자 입력 값 받아서 → 해당 구구단 출력
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("단(2-9) 입력: ");
int dan = sc.nextInt();
for(int i=1; i<9; i++)
{
System.out.printf("%d*%d = %d\n", dan, i, dan*i);
}
}
단(2-9) 입력:
7
7*1 = 7
7*2 = 14
7*3 = 21
7*4 = 28
7*5 = 35
7*6 = 42
7*7 = 49
7*8 = 56
1-100까지의 합
public static void main(String[] args) {
int sum=0;
for(int i=1; i<=100; i++) {
sum+=i;
System.out.println("sum=" + sum + ", i=" + i);
}
System.out.println("1-100까지 합: " + sum);
}
sum=1, i=1
sum=3, i=2
.
.
sum=4950, i=99
sum=5050, i=100
1-100까지 합: 5050
1-100까지의 짝수의 합, 홀수의 합
public static void main(String[] args) {
int even=0;
int odd=0;
for(int i=1; i<=100; i++)
{
if(i%2==0)
even+=i;
else
odd+=i;
}
System.out.println("1-100까지 짝수의 합: " + even);
System.out.println("1-100까지 홀수의 합: " + odd);
}
1-100까지의 3의 배수, 5의 배수, 7의 배수 합
public static void main(String[] args) {
int a3=0, a5=0, a7=0;
for(int i=1; i<=100; i++)
{
if(i%3==0)
a3+=i;
if(i%5==0) // if: 중복 수행 / else if: 중복 수행X
a5+=i;
if(i%7==0)
a7+=i;
}
System.out.println("1-100까지의 3의 배수 합: " + a3);
System.out.println("1-100까지의 5의 배수 합: " + a5);
System.out.println("1-100까지의 7의 배수 합: " + a7);
}
1-100까지의 3의 배수 합: 1683
1-100까지의 5의 배수 합: 1050
1-100까지의 7의 배수 합: 735
/*
* UPDOWN 게임
*
* 1. 난수: 1-100 사이의 임의 수 발생
* 2. 사용자가 입력해서 난수 맞히기
*
* 힌트
* UP: 입력 값보다 큰 값
* DOWN: 입력 값보다 작은 값
*
* 기회 몇 번?
* 맞힐 때까지: 무한 루프 → for(;;)
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int com = (int)(Math.random()*100)+1; // 1-100
for(;;)
{
// 사용자 입력 값 받기
System.out.println("1-100 사이의 정수 입력: ");
int user = sc.nextInt();
if(com > user)
System.out.println("입력한 값보다 큰 값 입력");
else if (com < user)
System.out.println("입력한 값보다 작은 값 입력");
else
{
// 맞혔을 때
System.out.println("Game Over!!");
break; // 종료 시 명령어
}
}
1-100 사이의 정수 입력:
50
입력한 값보다 큰 값 입력
1-100 사이의 정수 입력:
60
입력한 값보다 작은 값 입력
1-100 사이의 정수 입력:
57
입력한 값보다 작은 값 입력
1-100 사이의 정수 입력:
55
입력한 값보다 작은 값 입력
1-100 사이의 정수 입력:
54
입력한 값보다 작은 값 입력
1-100 사이의 정수 입력:
53
입력한 값보다 작은 값 입력
1-100 사이의 정수 입력:
52
Game Over!!
예제
1.
100점 만점으로 성적을 입력 받아
90~100이면 A,
80~89이면 B,
70~79이면 C,
60~69이면 D,
60점 이하면 F 출력 (switch ~ case 사용)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("점수 입력: ");
int score = sc.nextInt();
switch(score/10)
{
case 10:
case 9:
System.out.println("A학점입니다.");
break;
case 8:
System.out.println("B학점입니다.");
break;
case 7:
System.out.println("C학점입니다.");
break;
case 6:
System.out.println("D학점입니다.");
break;
default:
System.out.println("F학점입니다.");
}
}
점수 입력:
70
C학점입니다.
2.
정수 2개와 연산자(+, -, *, /)를 입력 받아 사칙 연산하는 프로그램 만들기 (switch~case 사용)
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("정수 입력: ");
int num1 = sc.nextInt();
System.out.println("+, -, *, / 입력: ");
String op = sc.next();
System.out.println("정수 입력: ");
int num2 = sc.nextInt();
switch(op)
{
case "+":
System.out.printf("%d + %d = %d\n", num1, num2, num1+num2);
break;
case "-":
System.out.printf("%d - %d = %d\n", num1, num2, num1-num2);
break;
case "*":
System.out.printf("%d * %d = %d\n", num1, num2, num1*num2);
break;
case "/":
if(num2 == 0)
System.out.println("0으로 나눌 수 없다.");
else
System.out.printf("%d / %d = %d\n", num1, num2, num1/num2);
break;
default:
System.out.println("해당 연산자가 없습니다.");
}
}
정수 입력:
8
+, -, *, / 입력:
*
정수 입력:
9
8 * 9 = 72
3.
2+4+6+...100까지의 정수 합 구하고 출력하기 (for 사용)
// 내 방식
public static void main(String[] args) {
int a=0;
for(int i=2; i<=100; i++)
{
if(i%2 == 0)
a+=i;
}
System.out.println("2+4+..100의 합: " + a);
}
강사 방식 깃헙으로 보기
4.
5, 10, 15...50을 출력하는 프로그램 만들기 (for 사용)
5 10 15 20 25 30 35 40 45 50
public static void main(String[] args) {
// 1
for(int i=5; i<=50; i++)
{
if(i%5==0)
System.out.print(i+" ");
}
// 2
for(int i=5; i<=50; i+=5)
System.out.println(i + " ");
}
5.
B, D, F, H, J, L, N을 출력하는 프로그램 만들기
B D F H J L N
public static void main(String[] args) {
for(char c='B'; c<='N'; c++)
{
if(c%2==0)
System.out.print(c + " ");
}
}
5번 깃헙 추가
6. 한 개 정수 입력 받아 1부터 입력 받은 정수까지의 합 출력하기
정수 입력:
10
1~10까지의 합: 55
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("정수 입력: ");
int num = sc.nextInt();
int sum = 0;
for(int i=1; i<=num; i++)
{
sum += i;
}
System.out.println("1~" + num + "까지의 합: " + sum);
}
7.
1부터 30까지의 정수에서 짝수만 한 줄에 3개씩 출력하기
2 4 6
8 10 12
14 16 18
20 22 24
26 28 30
public static void main(String[] args) {
int j=0; // 3개씩 나눠주는 변수
for(int i=2; i<=30; i+=2)
{
if(j%3==0)
System.out.println();
System.out.printf("%2d\t",i);
j++;
}
}
8.
1-2+3-4+5-6+7-8+9-10 계산 값을 for문을 이용해 출력하기
1-2+3..-10까지의 합: -5
public static void main(String[] args) {
int sum = 0;
for(int i=1; i<=10; i++)
{
if(i%2==0)
sum-=i;
else
sum+=i;
}
System.out.println("1-2+3..-10까지의 합: " + sum);
}
9.
1~10 사이의 숫자 중 3의 배수를 제외하고 출력하기 (continue 사용)
1 2 4 5 7 8 10
public static void main(String[] args) {
int num;
for(num=1; num<=10; num++)
{
if((num%3) == 0) continue;
System.out.print(num + " ");
}
}
for문 관련 p156-157 참고하면 됨
'수업' 카테고리의 다른 글
+7 배열, 크롤링 (0) | 2022.05.11 |
---|---|
+6 반복문(2차 for, while) (0) | 2022.05.10 |
+4 조건문 (0) | 2022.05.05 |
+3 (0) | 2022.05.03 |
+2 변수 선언, 입출력 (0) | 2022.04.29 |