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도 더 사용하지 않고 마지막 단에 출력하여
지저분한 코드 생략
반응형