제어문
조건제어문, 반복제어문
다중 if 문 특징 (기억)
1.순차조건문
2.트리형구조
3.if else 의 원형을 그대로 따라간다.
다중 if 문 사용_음식주문 프로그램
import java.io.*;
public class day05_01 {
public static void main(String[] args)
throws IOException{
System.out.println("먹고싶은메뉴를 고르세요");
System.out.println("1.짜장, 2.짬뽕, 3.탕수육, 4.팔보채");
System.out.print("메뉴>");
int menu=System.in.read()-48;
if(menu==1){
System.out.println("짜장면을 주문하셨습니다.");
}else if(menu==2){
System.out.println("짬뽐을 주문하셨습니다.");
}else if(menu==3){
System.out.println("탕수육을 주문하셨습니다.");
}else if(menu==4){
System.out.println("팔보채를 주문하셨습니다.");
}else{
System.out.println("잘못주문시켰습니다");
}
}
}
다중 if 문 사용_하나의 문자 확인
import java.io.*;
public class day05_iftest {
public static void main(String[] args)
throws IOException{
System.out.println("하나의 문자 입력");
int ch = System.in.read(); //아스키코드 값으로 들어온다. *주의 할 것
System.out.println(ch); //입력값 확인 아스키코드 값이 들어온 것을 확인 할 수 있다.
if(ch>=48 && ch<=58){ //"&& 뜻 and" 연산자 주의
System.out.println("숫자입니다.");
}else if((ch>=65 && ch<=90)||(ch>=97 && ch<=122)){ //조건식 구성 확인 "|| 뜻 or"
System.out.println("영문자입니다.");
}else{
System.out.println("기타문자입니다.");
}
}
}
다중 if 문 사용 점수 합산 프로그램
import java.io.*; //입력을 받을 수 있는 환경 구축 무조건 써야 함
public class day05_iftest2 {
public static void main(String[] args)
throws IOException{ //예외 상황을 처리하기 위해 throws IOException 씀
BufferedReader in=
new BufferedReader(new InputStreamReader(System.in));
//점수는 1바이트 체계를 넘어가기 때문에 2바이트 이상의 체계로 하기 위해 입력구문 작성
System.out.println("등급확인프로그램");
System.out.print("국어점수");
String str=in.readLine(); //실제로 값을 입력받기 위해 적은 구문
int kor = Integer.parseInt(str); //문자형을 정수형으로 바꾸기 위해 적음
System.out.print("영어점수");
int eng = Integer.parseInt(in.readLine()); //위의 두줄을 같은 의미로 한 줄로 줄여 쓸 수 있음
System.out.print("수학점수");
int math = Integer.parseInt(in.readLine());
int sum=kor+eng+math; //합산
int avg=sum/3; //통계
char hak;
if (avg>=90){
hak = 'A';
}else if(avg>=80){
hak = 'B';
}else if(avg>=70){
hak = 'C';
}else if(avg>=60){
hak = 'D';
}else{
hak = 'F';
}
System.out.println("총점:"+sum+"/평균"+avg+"/학점:"+hak);
}
}
Switch~case 문 특징
1. 순차 이동이 아닌 단순 이동
2. 값은 정수만 들어감 (* byte, short, char, int, 만 사용가능함 v.7 부터는 string 가능함)
3. break; 랑 같이 쓰임
4. if ~ else 문 보다 빠름
Switch~case 문 사용_메뉴 주문시키기
import java.io.*;
public class Switch_test {
public static void main(String[] args)
throws IOException{
System.out.println("1.짜장 2.짬뽕 3.탕수육 4.팔보채");
System.out.print("메뉴>");
int menu = System.in.read()-48; //아스키코드 값에서 48을 빼면 입력값 숫자가 됨.
switch(menu){
case 1:System.out.println("짜장시켰음");break; //break; 를 걸어 switch 문을 종료시킴
case 2:System.out.println("짬뽕시켰음");break;
case 3:System.out.println("탕수육시켰음");break;
case 4:System.out.println("팔보채시켰음");break;
default :System.out.println("다시주문하십시오"); //마지막은 break; 쓸 필요 없다
}
}
}
Switch~case 문 사용_등급확인 프로그램
import java.io.*; //입력을 받을 수 있는 환경 구축 무조건 써야 함
public class day05_iftest2 {
public static void main(String[] args)
throws IOException{ //예외 상황을 처리하기 위해 throws IOException 씀
BufferedReader in=
new BufferedReader(new InputStreamReader(System.in));
//점수는 1바이트 체계를 넘어가기 때문에 2바이트 이상의 체계로 하기 위해 입력구문 작성
System.out.println("등급확인프로그램");
System.out.print("국어점수");
String str=in.readLine(); //실제로 값을 입력받기 위해 적은 구문
int kor = Integer.parseInt(str); //문자형을 정수형으로 바꾸기 위해 적음
System.out.print("영어점수");
int eng = Integer.parseInt(in.readLine()); //위의 두줄을 같은 의미로 한 줄로 줄여 쓸 수 있음
System.out.print("수학점수");
int math = Integer.parseInt(in.readLine());
int sum=kor+eng+math; //합산
int avg=sum/3; //통계
char hak;
int ck=avg/10; //평균을 10으로 나눠서 switch 문에서 찻기 쉽게 한다.
switch(ck){ // 값의 규칙성을 찻는 것이 중요하다.
case 10:
case 9:hak='A';break;
case 8:hak='B';break;
case 7:hak='C';break;
case 6:hak='D';break;
default :hak='F';
}
System.out.println("총점:"+sum+"/평균"+avg+"/학점:"+hak);
}
}
위의 if ~ else 문과 무엇이 차이점이 있는지 확인해 보자.
for 문 기초 구문
import java.io.*;
public class fortest {
public static void main(String[] args)
throws IOException{
int sum=0;
for(int i=1;i<=5;i++){ //가운데 조건 값은 거의 "<="를 사용한다.
System.out.println(i+"번째 이름");
//sum=sum+i;
sum+=i; //위의 식을 이와 같이 쓸 수 있다
}
System.out.println("1-5까지의 합 : "+sum);
}
}
for 문 5의 배수의 합 프로그램
public class fortest {
public static void main(String[] args) {
int sum=0;
for(int i=1;i<=50;i++){ //가운데 조건 값은 거의 "<="를 사용한다.
if(i%5==0){
System.out.print(i+" ");
sum+=i;
}
}
System.out.println();
System.out.println("1-50까지 5 배수의합 : "+sum);
}
}
for 문 사용_소수 구하는 프로그램
import java.io.*;
public class day04_00 {
public static void main(String[] args)
throws IOException{
BufferedReader in=
new BufferedReader(new InputStreamReader(System.in));
System.out.println("소수인지 아닌지 판단하는 프로그램");
System.out.print("값입력>");
String str=in.readLine();
int num=Integer.parseInt(str);
//int num=Integer.parseInt(in.readLine()); <-위의 두 줄을 이렇게 쓸 수 있다.
for(int i=2;i<num;i++){ //소수의 정의를 잘 생각해서 조건문 작성
if(num%i==0){ //자신의 수와 카운터를 나누어 0이 있는지 확인
System.out.println("소수가 아닙니다.");
System.exit(0); //소수가 아니므로 프로그램 종료 구문
}
}
System.out.println("소수입니다.");
}
}