티스토리 뷰


#실습1.


 점수 -->  학점
100~90  -->   A 
80 점대  -->   B  
70 점대  -->   C  
60 점대  -->   D  
0~59 점대 -->  F 


(출력 예시)만약  입력받은 점수가 90점 이상이니?  A학점  



package ifelseex;


import javax.swing.JOptionPane;


public class IfElseTest {

 

public static void main(String[] args) {
  
  System.out.println("=======성적관리프로그램========");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수입력"));
  
  if(90<=score && score<=100){
   System.out.println(score+"점 : A학점");
  }else if(80<=score && score<90){
   System.out.println(score+"점 : B학점");
  }else if(70<=score && score<80){
   System.out.println(score+"점 : C학점");
  }else if(60<=score && score<70){
   System.out.println(score+"점 : D학점");
  }else if(0<=score && score<60){
   System.out.println(score+"점 : F학점");


  }

 }

}



==> 너무 길고 syso문장이 반복되어 나온다



#실습1.( 간결한 소스 )




package ifelseex;


import javax.swing.JOptionPane;


public class IfElseTest {

 public static void main(String[] args) {
  
  System.out.println("=======성적관리프로그램========");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수입력"));
  
  String grade ="";
  
  if(90<=score ){
   grade="A";
  }else if(80<=score ){
   grade="B";
  }else if(70<=score ){
   grade="C";
  }else if(60<=score ){
   grade="D";
  }else if(0<=score){
   grade="F";
  }
  
  System.out.println(score+"점"+grade+"입니다");

 }

}



==> 100이 넘어가는 숫자도 계산되어 나옴


#실습 ( 간결하게 만들기 )

  ver2. 범위 정하기



package ifelseex;


import javax.swing.JOptionPane;


/*
ver 2. 점수를 안전하게 처리하자
 */


public class IfElseTest2 {

 public static void main(String[] args) {
  
  System.out.println("==성적 관리 프로그램==");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수 입력"));
  
  String grade="";
  
  if(90<=score && score<=100){
   grade="A";
  }else if(80<=score && score<=89){
   grade="B";
  }else if(70<=score && score<=79){
   grade="C";
  }else if(60<=score && score<=69){
   grade="D";
  }else if(0<=score  && score<=59){
   grade="F";
  }else{
   grade="-";
  }
  System.out.println(score+"점 : "+grade+"학점");
  
 }

}


#실습 ( 간결하게 만들기 )

  ver3. 연산자의 개수를 줄이자


--> 만약 점수가 0~100점이면 학점 처리하겠다
--> 학점을 처리하기 전에 딱 한번만 0~100 검수를 하고 진행하겠다
--> 그렇지 않으면 "잘못입력되었습니다"



  

package ifelseex;


import javax.swing.JOptionPane;


public class IfElseTest3 {


 public static void main(String[] args) {
  
  System.out.println("====성적관리 프로그램====");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수입력"));
  
  if(0<=score && score<=100){

               //범위를 처음부터 정해줌  ( 120이나 음수값이 나오는 것을 방지 )
   String grade="F";

               //초깃값을 F로 주었기 때문에 else if(0<=score){ }삭제 가능
   if(90<=score){
    grade="A";


   }else if(80<=score){
    grade="B";


   }else if(70<=score){
    grade="C";


   }else if(60<=score){
    grade="D";


   }
  


      System.out.println(score+"점"+grade+"입니다");

                         // 이영역에 들어오는 숫자들은 0이상 100이하의 숫자들만이다


  }else{
   System.out.println(score+" 점수를 확인하세요 ");
  }
   
 }
}


#실습 (학점 +,- 붙이기)


ver4. 

    학점이 나올 때,  +, - 부호가 붙어서 나오면 좋겠다.
    각 학점별로   5점대 이상이면 + 붙이자
         4점대 이하면   - 붙이자
    9x  -> A
    
    100 -> A+
    99  -> A+ 95->A+   93->A-
    64  -> D-
    59  -> F  (붙이지 말자)




package ifelseex;

import javax.swing.JOptionPane;

public class IfElseTest4 {
 public static void main(String[] args) {
  
  System.out.println("====성적관리 프로그램====");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수입력"));
  
  if(0<=score && score<=100){
      String grade ="F";
      if(90<=score){
         grade="A";
         if(95<=score){
              grade +="+";

             // += 라고 표현해야 A+라는 표현이 된다
         }else{

             grade +="-";

      }
    
      }else if(80<=score){
          grade="B";
          if(85<=score){
              grade +="+";
          }else{

             grade +="-";

       }
    
       }else if(70<=score){
          grade="C";
          if(75<=score){
              grade +="+";
          }else{

              grade +="-";

       }
   
       }else if(60<=score){
           grade="D";
           if(65<=score){
             grade +="+";
           }else{

             grade +="-";

       }


   }
   System.out.println(score+"점"+grade+"입니다");


  }else{
   System.out.println(score+"점수를 확인하세요");
   
  }//for/else 범위 end
  
  
 }//main end
}//package end



#실습 (간결하게 만들기)




package ifelseex;

import javax.swing.JOptionPane;

public class IfElseTest5 {
 public static void main(String[] args) {
  


  System.out.println("====성적관리 프로그램====");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수입력"));
  
  if(0<=score && score<=100){



   String grade ="F";
   if(90<=score){
      grade="A";
      grade +=score>=95?"+":"-";


   }else if(80<=score){
     grade="B";
     grade +=score>=95?"+":"-";
    
   }else if(70<=score){
     grade="C";
     grade +=score>=95?"+":"-";
   
   }else if(60<=score){
     grade="D";
     grade +=score>=95?"+":"-";
   }
   System.out.println(score+"점"+grade+"입니다");
  }else{
   System.out.println(score+"점수를 확인하세요");
   
  }//for 범위 end


  }


}


#실습 (더 간결하게 )


package ifelseex;

import javax.swing.JOptionPane;

public class IfElseTest5 {
 public static void main(String[] args) {
  
  System.out.println("====성적관리 프로그램====");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수입력"));
  
  if(0<=score && score<=100){
   String grade ="F";
   if(90<=score){
    grade="A";
    
   }else if(80<=score){
    grade="B";
    
   }else if(70<=score){
    grade="C";
   
   }else if(60<=score){
    grade="D";
   }
   
   grade +=score%10>=5?"=":"-";
   System.out.println(score+"점"+grade+"입니다");
  }else{
   System.out.println(score+"점수를 확인하세요");
   
  }//for 범위 end
  
  
 }
}

--> 문제점

1) 100을 넣으면 A-가 출력됨

2) F학점에도 +-가 출력됨


#실습

ver.4. 문제점 해결


package ifelseex;


import javax.swing.JOptionPane;


public class IfElseTest6 {
 public static void main(String[] args) {
  
  System.out.println("====성적관리 프로그램====");
  int score = Integer.parseInt(JOptionPane.showInputDialog("점수입력"));
  
  if(0<=score && score<=100){
   String grade ="F";
   if(90<=score){
    grade="A";
    
   }else if(80<=score){
    grade="B";
    
   }else if(70<=score){
    grade="C";
   
   }else if(60<=score){
    grade="D";
   }
   if(! grade.equals("F")){
    grade += score==100 || score%10>=5?"+":"-";
   }
   
   System.out.println(score+"점"+grade+"입니다");
   
  }else{
   System.out.println(score+"점수를 확인하세요");
   
  }//for 범위 end
  
  
 }
}





'Programing > Java' 카테고리의 다른 글

Java1 - 11. For 문  (0) 2017.04.26
Java1 - 10. Switch  (0) 2017.04.21
Java1 - 08. If 제어문  (0) 2017.04.18
Java1 - 07. 연산자 2  (0) 2017.04.17
Java1 - 06. 연산자 1(operator)  (0) 2017.04.14
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함