본문 바로가기
Practice

1주차 숙제 요리 레시피 메모장 만들기

by 율량동박씨 2024. 4. 22.

 

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in); // Scanner 객체를 new 명령어로 생성합니다.
        System.out.println("요리 이름이 뭔가요?");
        String title = sc.nextLine();  // sc(Scanner)의 .next(); 를 실행하면 input 변수에 입력한 글자를 받을 수 있습니다.
        System.out.println("점수는 몇점인가요?");
        float score = sc.nextFloat(); // 점수를 실수로 입력
        sc.nextLine(); // 엔터키를 소비하기 위한 추가
        System.out.println("1. ");// 레시피의 번호를 출력하기 위함
        String input1 = sc.nextLine(); // 좋아하는 요리의 레시피를 한문장씩 입력
        System.out.println("2. ");
        String input2 = sc.nextLine();
        System.out.println("3. ");
        String input3 = sc.nextLine();
        System.out.println("4. ");
        String input4 = sc.nextLine();
        System.out.println("5. ");
        String input5 = sc.nextLine();
        System.out.println("6. ");
        String input6 = sc.nextLine();
        System.out.println("7. ");
        String input7 = sc.nextLine();
        System.out.println("8. ");
        String input8 = sc.nextLine();
        System.out.println("9. ");
        String input9 = sc.nextLine();
        System.out.println("10. ");
        String input10 = sc.nextLine();

        int scoreNumber = (int)score;//실수를 정수형으로 변경
        double percentage = scoreNumber * 100 / 5;//정수형으로 변환된 점수를 백분율로 표시

        System.out.println("점수는 : " + score);//입력한 점수를 출력
        System.out.println("점수는 : " + percentage + "%");//입력한 점수의 퍼센테이지를 표시
        System.out.println("좋아하는 요리 " + title);  //음식의 이름을 출력합니다
        System.out.println("레시피 1. " + input1);// 번호별 레시피를 출력
        System.out.println("레시피 2. " + input2);
        System.out.println("레시피 3. " + input3);
        System.out.println("레시피 4. " + input4);
        System.out.println("레시피 5. " + input5);
        System.out.println("레시피 6. " + input6);
        System.out.println("레시피 7. " + input7);
        System.out.println("레시피 8. " + input8);
        System.out.println("레시피 9. " + input9);
        System.out.println("레시피 10. " + input10);
        }
    }

 

 처음 작성할 때 float score = sc.nextFloat();다음에 레시피 번호를 입력하는 System.out.println("1. ");를 가져왔더니 레시피 입력 1번을 건너뛰는 문제가 발생됐다

알고 봤더니 이는 next();는 내가 숫자를 입력하고 엔터( \n )를 눌렀을때 숫자만 받아오므로 엔터( \n ) 는 남아 자동으로 다음줄에 적용이 되서 그랬던것이다.

nextLine();을 더 입력해서 남아있는 엔터( \n )를 처리해주니 해결!

여기서 next();는 엔터를 치기전까지의 값만 입력을 받고 nextLine(); 한줄을 모두 입력 받기에 next();를 사용하고 남아있던엔터(\n)를 nextLine();으로 리턴시켜줘서 해결이 됐다

사실 아직 배우는 단계라 정확히 이해한건지 헷갈린다