티스토리 뷰
#실습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 |