내일배움캠프 2주차 -2일

오늘 내가 배운 것, 오늘의 오류

오늘 자바 문법 종합반 1주차 숙제를 작성하였다.
다만 숙제를 혼자서 하기에는 아직 자바를 제대로 익히지 못해 답안영상을 보고 코드를 작성한 점.. 다음엔 꼭 내 힘으로 작성을 할 것이다.
숙제는 자바를 이용하여 요리 레시피 메모장 만들기.

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

먼저 입력값을 넣어야함.(메인 메소드는 always 있어야함!!)

  • 입력시 스케너 필요 sc로 객체를 만들어줌(현재는 변수처럼 생각하면 편함), 시스템.인은 우리가 입력하는 키보드 기본 셋팅이라고 생각하면 된다.
        String title = sc.nextLine();

그 다음 요리 제목을 먼저 입력하시오.

  • 여기에서 제목 입력 시 띄어쓰기를 허용하게 설정, So 넥스트 사용 시 띄어쓰기를 하면 다음 값 입력으로 넘어가게 되어서 nextLine 사용한다.
float rate = sc.nextFloat(); 

요리 별점을 1~5 사이의 소수점이 있는 실수로 입력하시오. (ex. 3.5)

  • 별점은 플로트로 받음. 변수명 일치시켜서 입력받음. Float실수는 nextFloat() 메서드를 받음.
 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문장을 입력하시오.

  • 문장을 입력 할 것이기 때문에 스트링을 복사, 타이틀에서 인풋n으로 변경하여 작성한다.
 System.out.println("[" + title + "]");

출력값 넣기.

  • 입력이 종료되면 요리 제목을 괄호([])로 감싸서 먼저 출력 해줌.
    (sout을 치고 Enter를 누르면 시스템아웃프린트라인 자동입력됨.)
int intRate = (int)rate;

이어서, 요리 별점을 소수점을 제외한 정수로만 출력하시오. (ex. 3)

  • 소수점 탈락현상이 있어야 함으로 int를 사용, 형변환을 위해 소괄호로 명시한다.
double percentageRate = intRate * 100 / 5.0; //자동 형변환
        System.out.println( percentageRate);

바로 뒤에 정수별점을 5점만점 퍼센트로 표현했을 때 값을 실수로 출력하시오. (ex. 60.0%)

  • 더블 퍼센테이지레이트라는 새로운 변수 만듬, 인트레이트가 예로 3점이면 백분률로 환산 시 60점 60.0. 5로 나누면 됨,
  • 실수로 출력하기 위해서 5.0으로 나눠 강제형변환 시켰다가 백분률로 값이 나와야되서 100 곱해줌.
 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);

이어서, 입력한 모든 문장 앞에 번호를 붙여서 모두 출력 하시오.

  • 이렇게 코트를 모두 작성했으면 저장 후 run했을 때 하단 run창에 커서가 깜빡깜빡하면 거기에 레시피 이름, 별점, 레시피를 작성하면 된다.
    나는 라자냐 레시피를 가져와 적고 실행시켜 주면!
    (레시피 사이트 : https://wtable.co.kr/recipes/96STe8Z7ZxK1QMY9xBhsN47Q)


띠용때용 오류가 생긴다!
다행이 다른 수강생분들도 이 오류를 많이 격어 오류가 공유되어 원인을 바로 알 수 있었는데(감사합니다!!) 그 이유는 바로 nextFloat에 숫자를 입력하면서, 한줄이 바뀔 때 개행문자(한줄 띄우기 - \n)가 포함되어 생기는 오류였다. 이럴 때는 입력값에서
float rate = sc.nextFloat(); 밑에 sc.nextLine();를 입력하면 개행문자가 제거되어 출력이 가능해진다.
개행은 줄바꿈 = new line을 말함.
개행문자는 줄바꿈 문자를 뜻함 (슬레시 n)


그럼 이렇게 오류없이 출력이 된다!

알게 된 점

  • next() : 개행문자를 무시하고 입력을 받음, 즉 숫자를 치고 엔터를 누를경우 엔터 전까지만 입력을 받음.(띄어쓰기를 하면 다음 값 입력으로 넘어가게 됨)

  • nextLine() : 한줄 단위로 입력 받기 때문에, 개행문자도 한 줄로 인식함.

  • 개행은 줄바꿈 = new line을 말함.
  • 개행문자는 줄바꿈 문자를 뜻함 (슬레시 n)
    자바로 메모장 작성법!

본격적으로 자바를 배우니 이해하기 어려워 집고 넘어갈 내용들이 많아 진도는 느리지만 제대로 자바를 익히고싶다!

0개의 댓글