Posts 자바-3. 제어문(switch case, 삼항연산자)
Post
Cancel

자바-3. 제어문(switch case, 삼항연산자)

switch문

메뉴 선택 프로그램

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
// switch문 사용
/*
 * 아래에 메뉴를 보여주고 선택한 메뉴를 알려주는 프로그램
 * 출력예) 1. 삽입
 * 		 2. 수정
 * 		 3. 삭제
 * 입력예) 숫자를 선택하세요. : 2
 * 출력예) 수정을 선택하셨습니다.
 * */

public static void main(String[] args) {
		
  Scanner scn = new Scanner(System.in);
  int num;
  System.out.println("1.삽입");
  System.out.println("2.수정");
  System.out.println("3.삭제");
  System.out.print("숫자를 선택하세요. :");
  num = scn.nextInt();

  switch(num) 
  {
  case 1:
  case 2:
    System.out.println("삽입이나 수정을 선택하셨습니다.");
    break;
  case 3:
    System.out.println("삭제를 선택하셨습니다.");
    break;
  default:
      System.out.println("숫자를 잘못 입력하셨습니다.");
  }
}

알파벳 입력후 다르게 표현하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
/*
 * switch문 사용
 * 문제) 영문 대문자를 입력받아 'A'이면 "훌륭합니다."
 * 'B'이면 "좋습니다." 'C'이면 "보통입니다." 'D'이면 "노력하세요."
 * 그외의 문자는 "잘못입력하셨습니다." 라고 출력하는 프로그램
 * 
 * 입력예) B
 * 출력예) 좋습니다.
* /

public static void main(String[] args) {
		
  Scanner scn = new Scanner(System.in);
  char a = scn.next().charAt(0);
    switch(a)
    {
    case 'A':
      System.out.println("훌륭합니다.");
      break;
    case 'B':
      System.out.println("좋습니다.");
      break;
    case 'C':
      System.out.println("보통입니다.");
      break;
    case 'D':
      System.out.println("노력하세요");
      break;
    default:
      System.out.println("잘못 입력하셨습니다.");
    }
}

점수입력 ‘수우미양가’

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
/*
 * 문제) 점수를 입력받아 "수우미양가"를 평가하는 프로그램
 * 입력예) 점수를 입력하세요. : 92
 * 출력예) 수
*/

public static void main(String[] args) {
		
Scanner scn = new Scanner(System.in);
System.out.print("점수를 입력하세요. :");
  int score = scn.nextInt();
  switch(score/10)
    {
    case 10:
    case 9:
      System.out.println("수");
      break;
    case 8:
      System.out.println("우");
      break;
    case 7:
      System.out.println("미");
      break;
    case 6:
      System.out.println("양");
      break;
    default:
      System.out.println("가");
    }
}

월입력 계절출력하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
/*
 * 문제) 현재 월을 입력받아 입력받은 월에 해당하는 계절을 출력하는 프로그램
 * 3~5월 "현재 계절은 봄입니다."
 * 6~8월 "현재 계절은 여름입니다."
 * 9~11월 "현재 계절은 가을입니다."
 * 12~2월 "현재 계절은 겨울입니다."
 * 입력예) 현재 월을 입력하세요. : 3
 * 출력예) 현재 계절은 봄입니다.
 * */


public static void main(String[] args) {
	
Scanner scn = new Scanner(System.in);
System.out.print("현재 월을 입력하세요. :");
  int month = scn.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;
    default:
      System.out.println("현재 계절은 겨울입니다.");			
  }
}
/* 모든 switch 문은 if로 바꿀수있다.
* 모든 if문은 switch문으로 바꿀수없다.

* 만약 default가 중간에 있으면 그것도 break를 넣어줘야한다.
*  */

가위바위보 게임

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/*
* switch이용
* 문제)가위,바위,보 게임
*     가위(1), 바위(2), 보(3)을 입력받고 컴퓨터는 random으로
*     발생하여 가위바위보 게임을 진행합니다.
* 입력예) 가위(1), 바위(2), 보(3) 중 하나를 입력하세요. : 1
* 출력예) 당신은 1입니다.
*       컴은 1입니다.
*       비겼습니다.
*       
* 입력예) 가위(1), 바위(2), 보(3) 중 하나를 입력하세요. : 3
* 출력예) 당신은 3입니다.
*       컴은 2입니다.
*       당신이 이겼습니다.(당신이 졌습니다./비겼습니다.)
*/

public static void main(String[] args) {
		
  Scanner scn = new Scanner(System.in);
  System.out.print("가위(1), 바위(2), 보(3) 중 하나를 입력하세요. : ");

  int user = scn.nextInt();//사용자 입력
  int com = (int)(Math.random() * 3) + 1;
  System.out.printf("당신은 %d입니다. \n", user);
  System.out.printf("컴은 %d입니다. \n", com);

  switch(user-com)
  {
    case 1:
    case -2:
      System.out.printf("당신이 이겼습니다.");
      break;
    case -1:
    case 2:
      System.out.println("당신이 졌습니다.");
      break;
    default:
    System.out.println("비겼습니다.");
    break;
  }
}

번호에따른 문구설정

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
/*
* 문제) 1번은 강아지, 2번은 고양이, 3번은 병아리로 정하고 번호를
* 입력하면 번호에 해당하는 동물을 영어로 출력하는 프로그램
* 해당번호가 없으면 "번호가 잘못되었습니다."
* 강아지 - dog, 고양이 - cat, 병아리 - chick
* 입력예) 번호를 입력하세요. : 2
* 출력예) cat
* */


public static void main(String[] args) {

Scanner scn = new Scanner(System.in);
System.out.print("번호를 입력하세요 : ");
char animal = scn.next().charAt(0);

  switch(animal)
  {
  case '1':
    System.out.println("dog");
    break;
  case '2':
    System.out.println("cat");
    break;
  case '3':
    System.out.println("chick");
    break;
  default :
    System.out.println("번호가 잘못되었습니다.");
  }

  if(num == 1)
  {
    System.out.println("dog");
  }
  else if(num == 2)
  {
    System.out.println("cat");
  }
  else if(num == 3)
  {
    System.out.println("chick");

  }
  else
  {
    System.out.println("번호가 잘못되었습니다.");
  }
}

if문 심화

평년 날수 출력하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
/*
* 문제) 1~12사이의 정수를 입력받아 평년의 경우 입력받은 월의 날수를
* 출력하는 프로그램
* 2 28(평년)
* 1,3,5,7,8,10,12월은 31
* 4,6,9,11월은 30
* 입력예) 2
* 출력예) 28
* 
* 2. 년도와 월을 입력받아 해당년도가 윤년이면 2 29일로 출력하는 프로그램
* 입력예) 2020 2
* 출력예) 2020년은 윤년으로 29 입니다.
* 입력예) 2021 2
* 출력예) 2021년은 평년으로 28 입니다.
* /


public static void main(String[] args) {
		
  Scanner scn = new Scanner(System.in);
  int month = scn.nextInt();
  int day = 30;

  if(month == 2)
    {
      day=28;
    }
    else if(month == 4 || month == 6 || month == 9 || month == 11)
    {
      day=30;
    }
    else
    {
      day=31;
    }
      
    System.out.println(day);
}

년도월 입력하여 윤년구하기

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
/* 2. 년도와 월을 입력받아 해당년도가 윤년이면 2월 29일로 출력하는 프로그램
* 입력예) 2020 2
* 출력예) 2020년은 윤년으로 29일 입니다.
* 입력예) 2021 2
* 출력예) 2021년은 평년으로 28일 입니다.
* */


public static void main(String[] args) {
		
  Scanner scn = new Scanner(System.in);
  int year = scn.nextInt();
  int month = scn.nextInt();
  int day = 30;
  String info = "평년";

  if( (year % 400 == 0) ||
      (year % 4 == 0 && year % 100  != 0) ) 
    {
      info = "윤년";
    }
  if(month == 2) 
  {
    //if( (year % 400 == 0) ||
      //	(year % 4 == 0 && year % 100  != 0));
    if(info.equals("윤년"))
    {
      day = 29;
    }
    else 
    {
      day = 28;
    }
  }
  else if(month == 4 || month == 6 || month == 9 || month == 11)
    {
      day=30;
    }
  else
    {
      day=31;
    }

  System.out.printf("%d년은 %s으로 %d일 입니다.\n", year, info, day);
}
This post is licensed under CC BY 4.0 by the author.