자바입문자입니다

조회수 1339회

package project; import java.util.Scanner;

public class Grading {
    public static void main (String[] args) {
        char grade;
        Scanner a = new Scanner(System.in);
        while (a.hasNext()) {
            int score = a.nextInt();
            if(score >= 90.0) // score가 90.0 이상인 경우
                grade = 'A';
            else if(score >= 80.0) // score가 80.0 이상이면서 90.0 미만인 경우
                grade = 'B';
            else if(score >= 70.0) // score가 70.0 이상이면서 80.0 이만인 경우
                grade = 'C';
            else if(score >= 60.0) // score가 60.0 이상이면서 70.0 이만인 경우
                grade = 'D';
            else // score가 60.0 이만인 경우
                grade = 'F';
            System.out.println("학점은" +grade+"입니다");
        }
    }
}




이구문은 모두 이해가 됬는데 여기서 값을 "y"를 입력하면 종료되는 프로그램을 만드려합니다. 방법이 있을까요 초보자라 아무것도 모르겠습니다.ㅜ 일단 숫자 문자부터 구분해야될꺼같은데..

1 답변

  • 좋아요

    2

    싫어요
    채택 취소하기

    소스가 이해 되었다면 하고자 하는 것에 대해 질문을 "초보자라 모르겠습니다" 그렇게 하면 안됩니다. 결국 소스를 이해못했다는 것과 다름이 없는 겁니다.

    질문을 구체적으로 해야 도움이 되는 답변을 할 수 있습니다.

    int score = a.nextInt(); // 키보드 숫자 입력을 받습니다.
    

    요구조건은 단순히 Y일 경우 종료처리이지만 2가지를 더 고민해야 합니다. 사용자가 Y외예 따른 문자를 넣었을경우는? int 범위를 넘는 넣는 숫자를 넣는 경우는?

    현재는 숫자만 받아서 처리하고 있으므로 문자를 받으려면 Scanner에 nextLine 메소드를 사용해서 입력한 문자를 그대로 받습니다. 그렇게 받아온 것은 String 이므로 입력값이 Y인지 검증할 수 있습니다. 성적을 표시하려면 Integer 클래스의 parseInt 메소드를 사용하여 int 타입으로 변환이 가능합니다.

    parseInt 시 문자라면 NumberFormatException이 발생합니다. 숫자로 변환후에 크기가 100 이상일 경우 입력 오류로 판단해야 합니다.

    마지막으로 종료는 System 클래스의 exit 메소드를 사용하면 됩니다.

    숙제 같은데 직접 고민해보시기 바랍니다. 고민한만큼 실력도 늡니다.

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)