티스토리 뷰

JAVA

190625 중복if문

猫猫 2019. 6. 26. 10:04
반응형
	package ch02; 

import java.util.Scanner; //입력값 받기 위한 import 혹은 import java.util.*; 로 util 전제 import 해도 됨 


public class ch04 { 


public static void main(String[] args) { 

	System.out.print("점수를 입력해주세요.>"); 
	Scanner scan = new Scanner(System.in); 
	String tmp = scan.nextLine(); // 화면을 통해 입력받은 내용을 tmp에 저장 

	int score = Integer.parseInt(tmp);   // 입력받은 문자열(tmp)을 숫자로 변환 

	char grade = ' '; 
	char opt = '0'; 

	System.out.println("님 점수 : "+score); 


      if (score >= 90) { 

        grade = 'A'; 

          if (score >=98) { 
          opt = '+'; 
          System.out.printf("학점은 : %c%c",grade,opt); 
          } 

            else if(score < 94) { 
            opt = '-'; 
            System.out.printf("학점은 : %c%c",grade,opt); 
            } 

            else System.out.printf("학점은 : %c",grade); 

            }  

          else if(score >= 80) { 

            grade = 'B'; 

            if (score >= 88) { 
            opt = '+'; 
            System.out.printf("학점은 : %c%c",grade,opt); 
            } 

            else if(score <84) { 
            opt = '-';  
            System.out.printf("학점은 : %c%c",grade,opt); 
            } 

          else System.out.printf("학점은 : %c",grade); 

          }  

        else { 
        grade = 'C'; 
        System.out.printf("학점은 : %c",grade); 
        } 
    } 
  }

중복 if로 점수, 학점 걸러내기. 

예제로는 완벽하게 예외처리 할 수 없어서 추가로 골라냄

 

 

 

 

<<<<<<<<<<<<수정버전>>>>>>>>>>>>

package prj190626;

import java.util.*;

public class If_3 {

	public static void main(String[] args) {
			int score = 0;
			String grade ="";
			System.out.print("점수 좀 >>>> ");
			
			Scanner scan = new Scanner(System.in);
			String tmp = scan.nextLine();
			score = Integer.parseInt(tmp);
			
			if(score >= 90) {
				
				grade = "A";
				
				if(score >= 98) {
					
					grade += "+";
				}
				else if(score < 94 ) {
					grade += "-";
				}
				
				System.out.println(grade);
			}
			
			else if(score >= 80) {
				
				grade = "B";
				
				if(score >= 88) {
					grade += "+";
				}
				else if(score < 84) {
					grade += "-";
				}
				
				System.out.println(grade);
				
			}
			
			else {
				grade = "C";
				System.out.println(grade);
			}
			
	}

}

 

 

그냥 grade를 문자열로 선언, 문자열에 + 연산 하면 바로 뒤에 붙는다는 점 활용, 

opt를 char 형으로 선언 하지 않고 바로 grade에 연산하여 출력, 

else도 더 사용하지 않고 마지막 단에 출력하여 

지저분한 코드 생략

반응형