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();으로 리턴시켜줘서 해결이 됐다
사실 아직 배우는 단계라 정확히 이해한건지 헷갈린다