편집 기록

편집 기록
  • 프로필 편집요청빌런님의 편집
    날짜2020.03.30

    자바 초보 질문입니다. NoSuchElementException


    package two.doomsday;
    
    import java.util.Scanner;
    
    public class DoomsdayMain {
        public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            int year=1; int mon=1; int day=1;
            int dayOfWeek=2;
    
            //날짜 입력 
            do {
                System.out.printf("날짜 입력(YYYY/MM/DD): ");
                sc = new Scanner(sc.next()).useDelimiter("\\s*/\\s*");
                year = sc.nextInt();
                mon = sc.nextInt();
                day = sc.nextInt();
            } while (isDateValid(year,mon,day,isLeapYear(year))==false);
    

    날짜를 잘못 입력했을 때 다시 입력하게 만들고 싶어서 do~while문을 썼는데 실행하고 나서 날짜를 2020년 2월 30일이라고 틀리게 입력해보니 이렇게 NoSuchElementException이 뜹니다.

    날짜 입력(YYYY/MM/DD): 2020/02/30
    날짜 입력(YYYY/MM/DD): Exception in thread "main" java.util.NoSuchElementException
        at java.base/java.util.Scanner.throwFor(Scanner.java:937)
        at java.base/java.util.Scanner.next(Scanner.java:1478)
        at ProblemSolvingHomework/two.doomsday.DoomsdayMain.main(DoomsdayMain.java:15)
    

    스캐너가 문제인 것 같은데 어떻게 해결해야 할까요? 자바 배우기 시작한 지 2주도 채 되지 않아서, 쉽게 설명해 주시면 감사하겠습니다.

  • 프로필 알 수 없는 사용자님의 편집
    날짜2020.03.30

    자바 초보 질문입니다. NoSuchElementException


    package two.doomsday;

    import java.util.Scanner;

    public class DoomsdayMain { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int year=1; int mon=1; int day=1; int dayOfWeek=2;

        //날짜 입력 
        do {
            System.out.printf("날짜 입력(YYYY/MM/DD): ");
            sc = new Scanner(sc.next()).useDelimiter("\\s*/\\s*");
            year = sc.nextInt();
            mon = sc.nextInt();
            day = sc.nextInt();
        } while (isDateValid(year,mon,day,isLeapYear(year))==false);
    

    날짜를 잘못 입력했을 때 다시 입력하게 만들고 싶어서 do~while문을 썼는데 실행하고 나서 날짜를 2020년 2월 30일이라고 틀리게 입력해보니 이렇게 NoSuchElementException이 뜹니다.

    날짜 입력(YYYY/MM/DD): 2020/02/30 날짜 입력(YYYY/MM/DD): Exception in thread "main" java.util.NoSuchElementException at java.base/java.util.Scanner.throwFor(Scanner.java:937) at java.base/java.util.Scanner.next(Scanner.java:1478) at ProblemSolvingHomework/two.doomsday.DoomsdayMain.main(DoomsdayMain.java:15)

    스캐너가 문제인 것 같은데 어떻게 해결해야 할까요? 자바 배우기 시작한 지 2주도 채 되지 않아서, 쉽게 설명해 주시면 감사하겠습니다.