오늘 자바 문법 종합반 1주차 숙제를 작성하였다.
다만 숙제를 혼자서 하기에는 아직 자바를 제대로 익히지 못해 답안영상을 보고 코드를 작성한 점.. 다음엔 꼭 내 힘으로 작성을 할 것이다.
숙제는 자바를 이용하여 요리 레시피 메모장 만들기.
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
먼저 입력값을 넣어야함.(메인 메소드는 always 있어야함!!)
String title = sc.nextLine();
그 다음 요리 제목을 먼저 입력하시오.
float rate = sc.nextFloat();
요리 별점을 1~5 사이의 소수점이 있는 실수로 입력하시오. (ex. 3.5)
String input1 = sc.nextLine();
String input2 = sc.nextLine();
String input3 = sc.nextLine();
String input4 = sc.nextLine();
String input5 = sc.nextLine();
String input6 = sc.nextLine();
String input7 = sc.nextLine();
String input8 = sc.nextLine();
String input9 = sc.nextLine();
String input10 = sc.nextLine();
이어서 요리 레시피를 한 문장씩 10문장을 입력하시오.
System.out.println("[" + title + "]");
출력값 넣기.
int intRate = (int)rate;
이어서, 요리 별점을 소수점을 제외한 정수로만 출력하시오. (ex. 3)
double percentageRate = intRate * 100 / 5.0; //자동 형변환
System.out.println( percentageRate);
바로 뒤에 정수별점을 5점만점 퍼센트로 표현했을 때 값을 실수로 출력하시오. (ex. 60.0%)
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);
이어서, 입력한 모든 문장 앞에 번호를 붙여서 모두 출력 하시오.
띠용때용 오류가 생긴다!
다행이 다른 수강생분들도 이 오류를 많이 격어 오류가 공유되어 원인을 바로 알 수 있었는데(감사합니다!!) 그 이유는 바로 nextFloat에 숫자를 입력하면서, 한줄이 바뀔 때 개행문자(한줄 띄우기 - \n)가 포함되어 생기는 오류였다. 이럴 때는 입력값에서
float rate = sc.nextFloat(); 밑에 sc.nextLine();를 입력하면 개행문자가 제거되어 출력이 가능해진다.
개행은 줄바꿈 = new line을 말함.
개행문자는 줄바꿈 문자를 뜻함 (슬레시 n)
그럼 이렇게 오류없이 출력이 된다!
next() : 개행문자를 무시하고 입력을 받음, 즉 숫자를 치고 엔터를 누를경우 엔터 전까지만 입력을 받음.(띄어쓰기를 하면 다음 값 입력으로 넘어가게 됨)
nextLine() : 한줄 단위로 입력 받기 때문에, 개행문자도 한 줄로 인식함.