/*==========================================
■■■ 실행 흐름의 컨트롤 (제어문) ■■■
- 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 |