잇연

[국비지원교육] JAVA 5일차_제어문(조건문-선택문)_05.09 본문

JAVA

[국비지원교육] JAVA 5일차_제어문(조건문-선택문)_05.09

잇연 2022. 5. 9. 09:32

 

선택문 

선택문 : 경우의 수가 많은 경우에 주로 사용
한개를 선택시에 처리 : 메뉴 , 계산기 , 성적계산
게임 (키보드 선택)
=> 웹에서는 사용빈도가 많이 없다

선택문 형식)

                 switch(1.정수 , 2.문자 , 3. 문자열)
                 {
                    case 정수값(1): Space,Enter => 총알  
                       처리문장1 
                       종료 명령 ==> break  => break가 있는 문장까지 수행
                                  break는 모든 case문장에 설정하지는 않는다
                    case 정수값(2):
                       처리문장2
                       종료 명령 ==>
                    case 정수값(3):
                       처리문장3
                       종료 명령 ==>
                    default:
                       처리문장4
                 }
                     case SPACE:
                     case ENTER:   => if(key==SPACE || key==ENTER)
                        처리 
                        break;
                        
                     case 100:
                     case 90: => 같은 내용이 있는 경우 
                       A
                       break;
                  
                 switch(1) => 처리문장1 , 처리문장2,처리문장3, default를 수행
                
/*             주의점 : 정수(상수) , 문자 , 문자열 
                    case 값:
                         -- 중복이 있으면 안된다 
                    -- break는 사용할때도 있고 사용하지 않는 경우도 있다 
                                          -------------------
                                            처리하는 내용이 같은 경우에는 생략한다 
*/ 
// 사칙연산 => + , - , * , / (default:사칙연산이 아닌 경우)  => 문장/문자열

 

선택문 예시 

1) 선택문예시1_사칙연산(정수) 

import java.util.Scanner; // 사용자 입력 받기 
public class 선택문_1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        // 클래스를 사용시에는 반드시 메모리에 저장후에 사용 => 메모리 저장 : new
		Scanner scan=new Scanner(System.in);
		//                      ----------- 키보드 입력값을 받을 경우
		// -> in ==> InputStream
		// -> out ==> OutputStream 
		// Stream => 데이터 이동하는 통로 
		System.out.print("첫번째 정수:");//void => 줄 값이 없다 
		int num1=scan.nextInt(); //기능 => 입력된 정수값을 가지고 온다
		System.out.print("두번째 정수:");
		int num2=scan.nextInt();
		// 연산자 => +,-,*,/ => 문자열  '+'(X):문자 => "+":문자열 
		System.out.print("연산자 입력(+,-,*,/):");
		String op=scan.next(); // 입력된 문자열을 읽어 온다 
		/*
		 *   nextInt() ==> int
		 *   nextDouble()==> double
		 *   next()     ==> String 
		 *   nextBoolean() ==> boolean 
		 */
		switch(op)
		{
		   case "+":
			  System.out.printf("%d+%d=%d\n",num1,num2,num1+num2);
			  break; // switch를 종료한다  
		   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("잘못된 연산자입니다!!");
		}
		
	}

}

2) 선택문예시2_과목별 점수를 입력받고, 총점, 평균, 그리고 등급 구하기 

①과목별 점수를 입력받는다.

Scanner와 nextInt를 통해 입력받는다. 

Scanner scan=new Scanner(System.in);

int kor=scan.nextInt();

②총점 구하기

System.out.println("총점:"+(kor+eng+math));

③평균구하기

System.out.printf("평균:%.2f\n",(kor+eng+math)/3.0);

④등급구하기switch, case문을 이용한다. 

import java.util.Scanner;
/*
 *       =============
 *         Stack : 변수 , 매개변수 => 메모리 자체 관리 {}
 *       =============
 *         Heap : 클래스 , 배열 => 프로그래머가 관리  => GC
 *       =============
 */
public class 선택문_2 {
    
	public static void main(String[] args) {
		// TODO Auto-generated method stub
        Scanner scan=new Scanner(System.in);
        System.out.print("국어점수 입력:");
        int kor=scan.nextInt();
        
        System.out.print("영어점수 입력:");
        int eng=scan.nextInt();
        
        System.out.print("수학점수 입력:");
        int math=scan.nextInt();
        
        // 국어 , 영어 , 수학 
        System.out.println("국어점수:"+kor);
        System.out.println("영어점수:"+eng);
        System.out.println("수학점수:"+math);
        // 총점 => 90 80 70
        System.out.println("총점:"+(kor+eng+math));
        //                 ----------
        //                 "총점:90"
        //                 -------------- "총점:9080" 
        // 평균 
        int avg=(kor+eng+math)/3;//switch~case
        System.out.printf("평균:%.2f\n",(kor+eng+math)/3.0);
        // 학점 
        // 100~90 A  , 89~80 B  , 79~70 C  , 69~60 D .. F
        // case 100:99:98:97.....
        // case문장을 최대한 줄인다 
        // 한개씩 선택 => 선택문 , 범위 => 다중 if 
        /*
         *    final int LOGIN=1
         *    case LOGIN=> 상수
         *    case 2
         *    case 3
         *    case 4.... 10
         *    case "LOGIN":
         *    case "ROOMIN":
         *    case "ROOMOUT":
         */
        switch(avg/10) // 정수(상수) , 문자('') , 문자열("") 
        {
           case 10://100
           case 9:// 90대 
        	   System.out.println("학점:A");
        	   break;
           case 8://80대
        	   System.out.println("학점:B");
        	   break;
           case 7:
        	   System.out.println("학점:C");
        	   break;
           case 6:
        	   System.out.println("학점:D");
        	   break;
           default:
        	   System.out.println("학점:F");
        	   
        }
	}

}

'JAVA' 카테고리의 다른 글

[국비지원교육]  (0) 2022.05.10
[국비지원교육] JAVA 5일차_제어문(조건문-반복문)_05.09  (0) 2022.05.09
제어문(조건문)복습  (0) 2022.05.08
dd  (0) 2022.05.06
w  (0) 2022.05.06