TIL_230524

지인·2023년 5월 23일
0

TIL

목록 보기
11/38

🐰 문제


        Scanner sc = new Scanner(System.in);

        String favoriteFood = sc.nextLine();
        double star = sc.nextDouble();
        double ave = (star/5)*100;

        String recipe1 = sc.nextLine();
        // 중략
        String recipe10 = sc.nextLine();


        System.out.println("[ " + favoriteFood + " ]");
        System.out.println("별점 : " + star + " (" + ave + ")");

        System.out.println("1. " + recipe1);
        // 중략
        System.out.println("10. " + recipe10);

🥕 예상 결과

[ 백종원 돼지고기 김치찌개 만들기 ]
별점 : 4.0 (80.0)
1. 돼지고기는 핏물을 빼주세요.
// 생략

🥕 결과

[ 백종원 돼지고기 김치찌개 만들기 ]
별점 : 4.0 (80.0)
1. 
2. 돼지고기는 핏물을 빼주세요.
// 생략

🐰 이유

  • nextDouble() 은 개행문자 전까지만 입력을 받고 입력 후 남은 개행문자는 무시된다.
    nextLine() 은 개행문자를 만나기 전까지 모든 문자들을 가져오는데 nextDouble() 에서 무시된 개행문자를 nextLine() 에 의해 입력으로 처리돼서 1. 부분이 공백으로 출력됐다.

🐰 해결

  • 이 이슈를 해결하려면 nextDouble()nextLine() 사이에 개행문자를 처리할 수 있는 scanner.nextLine() 을 추가해주면 된다.
profile
열쩡

0개의 댓글