본문 바로가기

📚Study Note/JAVA

[ JAVA ] SWITCH 문

/*==========================================
 ■■■  실행 흐름의 컨트롤 (제어문) ■■■
 - switch문 실습
 ===========================================*/
/*
○ 다중 선택문이라 하며, switch 문 다음의 수식 값에 따라 실행 순서를 여러 방향으로 분기할 때 사용하는 문장이다.

○ 형식 및 구조
	Switch(수식)
	{
		
		case 상수 1 : 문장 1 ; [break;]
		case 상수 2 : 문장 2 ; [break;]
			.
			.
		[default : 문장 n+1;] ; [break;]


		swich문의 『수식』과 『case』의 상수는 byte short int long 형이어야한다. 
		case 문 뒤에 break 구문이 없는 형태인 경우 
		다음 case 문의 문장을 계속해서 수행하게 된다 (기본모델). 

*/

import java.io.InputStreamReader;
import java.io.BufferedReader;
import java.io.IOException;
	
	public class Test040
{
	public static void main(String[] args) throws IOException
		
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		System.out.print("이름 입력 : ");
		String name = br.readLine();

		System.out.print("국어 점수 : ");
		int kor = Integer.parseInt(br.readLine());

		System.out.print("영어 점수 : ");
		int eng = Integer.parseInt(br.readLine());

		System.out.print("수학 점수 : ");

		int mat = Integer.parseInt(br.readLine());

		int tot = kor + eng + mat;

		int avg = tot/3;
		
		char grade;

		switch (avg/10)
		{
		case 10 : case 9: grade = 'A'; break;
		
		case 8  : grade = 'B'; break;
		case 7  : grade = 'C'; break;
		case 6  : grade = 'D'; break;
		default : grade = 'F'; break;		
		}

		System.out.println(name + "의 grade : " + grade);

		/*[출력결과]
		이름 입력 : 징징이
		국어 점수 : 100
		영어 점수 : 85
		수학 점수 : 90
		징징이의 grade : A
		계속하려면 아무 키나 누르십시오 . . .

		이름 입력 : 이브니
		국어 점수 : 30
		영어 점수 : 30
		수학 점수 : 40
		이브니의 grade : F
		계속하려면 아무 키나 누르십시오 . . .
		*/

	}
}

 

 

 

/*==========================================
 ■■■  실행 흐름의 컨트롤 (제어문) ■■■
 - switch문 실습
 ===========================================*/

 // 1부터 3까지의 정수 중 하나를 사용자로부터 입력받아 입력받은 정수만큼 별(★) 문자가 출력되는 프로그램을 작성한다.
 // 단, 두 가지 방법으로 구현할 수 있도록 한다. 
 //① switch 문의 일반 모델을 활용한다.
 //② switch  문의 기본 모델을 활용하되. break를 딱 한 번만 사용할 수 있도록 한다.

 // 실행 예)
 // 임의의 정수 입력(1~3) : 3
 // ★★★
 // 계속하려면 아무 키나...

  // 임의의 정수 입력(1~3) : 7
 // 입력 오류
 // 계속하려면 아무 키나...


import java.util.Scanner;
import java.io.IOException;


public class Test041
{
	public static void main(String[] args) throws IOException
	{

		Scanner sc = new Scanner(System.in);

		int a;
		String f;
		f="입력 오류";
		System.out.print("임의의 정수 입력(1~3) : ");
		a=sc.nextInt();

		
		
		switch (a)

		{
		case 1 : f = "★";break;
		case 2 : f = "★★";break;
		case 3 : f = "★★★" ;break;
		}

		System.out.println(f);

		

		/*
		switch (a)
		{
		case 3 : System.out.print("★");
		case 2 : System.out.print("★");
		case 1 : System.out.print("★\n"); break;
		default: System.out.println("입력오류");
		}
		*/	

		
	}

}

 

 

 

 

/*==========================================
 ■■■  실행 흐름의 컨트롤 (제어문) ■■■
 - switch문 실습
 ===========================================*/

// 사용자로부터 임의의 두 정수와 연산자를 입력받아 해당 연산의 처리 결과를 출력하는 프로그램을 구현한다.
// 단, switch 문을 활용하여 처리할 수 있도록 하며, 연산 결과를 편의상 정수 형태로 처리한다.

// 실행 예)
// 첫 번째 정수 입력		: 10

// 두 번째 정수 입력		: 31
// 연산자 입력( + - * / )	: +
// >> 10 + 31 = 41
// 계속하려면 아무 키나 누르세요....

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

public class Test042
{
	public static void main(String[] args) throws IOException
	{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		

		int a;
		System.out.print("첫 번째 정수 입력       : ");
		a = Integer.parseInt(br.readLine()); 

		

		int b;
		System.out.print("두 번째 정수 입력       : ");
		b = Integer.parseInt(br.readLine());

		char c;
		System.out.print("연산자 입력( + - * / )	: ");
		c = (char)System.in.read(); 

		//System.out.print(c);

		// 앞서 Test40에서 swich문의 『수식』과 『case』의 상수는 byte short int long 형이어야한다고 했음.
		//  byte short int long 뿐만 아니라 jdk 1.5버전부터는 char도 가능하도록 됐다.
		// 또 버전 1.7 이후에는 문자열도 가능해졌다!
		switch (c)

		{
		case '+': System.out.printf(">> %d %c %d = %d\n",a,c,b,a+b);break;
		case '-': System.out.printf(">> %d %c %d = %d\n",a,c,b,a-b);break;
		case '*': System.out.printf(">> %d %c %d = %d\n",a,c,b,a*b);break;
		case '/': System.out.printf(">> %d %c %d = %d\n",a,c,b,a/b);break;
		default : return; // → 메소드를 종료하겠다는 의미. return이 포함되어있던 메소드 즉 메인메소드를 종료하겠다 → 프로그램 종료를 의미한다.
		
		}

		/*※ 『return』 1. 값의 반환  2. 메소드를 종료하겠다. (메소드는 하던 일을 멈추고 끝나는 것) */

		System.out.println();
		System.out.printf(" >> %d + %d = %d\n", a,b,a+b); //default값일 때 return에 의해서 출력구문 실행 안하고 바로 메소드종료=프로그램종료 되어버림.

		/*
		첫 번째 정수 입력       : 5
		두 번째 정수 입력       : 7
		연산자 입력( + - * / )  : *
		>> 5 * 7 = 35

		 >> 5 + 7 = 12
		계속하려면 아무 키나 누르십시오 . . .
		*/

		/*첫 번째 정수 입력       : 1
		두 번째 정수 입력       : 2
		연산자 입력( + - * / )  : &
		계속하려면 아무 키나 누르십시오 . . .
		*/
	}

}

'📚Study Note > JAVA' 카테고리의 다른 글

[ JAVA ] while문 ②  (0) 2021.03.13
[ JAVA ] while 문 ①  (0) 2021.03.13
[ JAVA ] if ~ else문 ②  (0) 2021.03.13
[ JAVA ] if ~ else 문 ①  (0) 2021.03.10
제어문 _ IF 문  (0) 2021.03.05