-학원에서 성적 코드를 만들었었다. 그런데 if 안의 if 문을 쓰지 않고 같은 메소드로 +-0를 넣어주고 싶다고 적었었다. 그리고 그런 방식으로 코드를 구현해봤다. 물론, 그냥 if문 안에 if문으로 넣어주는 게 더 편할 수 있겠다 싶은 수준이었지만, 그래도 이런 방식으로도 시도해보고 싶었다.
package sungjuc;
import java.util.Scanner;
public class Sungjuk {
public static void main(String[] args) {
System.out.print("성적을 입력해주세요:> ");
Scanner sc = new Scanner(System.in);
int inputNum = sc.nextInt();
MethodGather sg = new MethodGather();
String grade = sg.ScoreCheck(inputNum);
String gradePM = sg.gradeCheck(inputNum, grade);
System.out.println("당신의 점수는 "+inputNum+"점 입니다.");
System.out.println("당신의 학점은 "+gradePM+"입니다.");
}
}
class MethodGather{
String ScoreCheck(int var) {
String grade="";
if(var >=90 && var<101) {
grade = "A";
}else if(var>=80) {
grade = "B";
}else {
grade = "C";
}
return grade;
}
String gradeCheck(int var, String grade) {
String tenNum = "";
String oneNum_1 = "8";
String oneNum_2 = "4";
String Num_1 = "";
String Num_2 = "";
if(var == 100) {
grade += "+";
}else if(grade =="A") {
tenNum = "9";
Num_1 = tenNum+oneNum_1;
Num_2 = tenNum+oneNum_2;
int range_1 = Integer.parseInt(Num_1);
int range_2 = Integer.parseInt(Num_2);
grade += this.opt(range_1, range_2, var);
}else if(grade =="B"){
tenNum = "8";
Num_1 = tenNum+oneNum_1;
Num_2 = tenNum+oneNum_2;
int range_1 = Integer.parseInt(Num_1);
int range_2 = Integer.parseInt(Num_2);
grade += this.opt(range_1, range_2, var);
}
return grade;
}
String opt(int range_1, int range_2, int var) {
String opt = "";
if(var>=range_1) {
opt +="+";
}else if(var<=range_2) {
opt +="-";
}else{
opt +="0";
}
return opt;
}
}
-역시 예상대로 훨씬 더 복잡해졌지만, 내가 생각했던대로 구현은 됐다. 다만, 문제는 좀 더 간결하게 작성할 수는 없었나 하는 것이다. 그래도 일단 생각한대로 작성이 되었고 실제로 기능을 했기 때문에 나름 만족스러운 주말이다.