금일 배운 것
1. Java 문법 종합반 1주차 영상강의 시청 / 총 9개 강의 시청, 1개 문제 풀기
문제점
1. 처음 접하는 단어들 과 개념 들의 숙지 와 이해
- 문제해결 : 시청한 영상강의에서 외워야하는 단어들을 따로 Excel로 정리
2. 1주차 숙제 에서의 답 해결에서 오류 발견
- 오류 내용 : 시행한 코드대로 출력이 안됨
숙제내용 ( 입력값과 출력값 코드를 작성하여 예시작성시 예시답변과 동일하게 나오게하기 )
- 입력값
- 내가 좋아하는 요리 제목을 먼저 입력합니다.
- 요리 별점을 1~5 사이의 소수점이 있는 실수로 입력해주세요. (ex. 3.5)
- 이어서 내가 좋아하는 요리 레시피를 한 문장씩 10문장을 입력합니다.
- 출력값
- 입력이 종료되면 요리 제목을 괄호로 감싸서 먼저 출력 해줍니다.
- 이어서, 요리 별점을 소수점을 제외한 정수로만 출력해줍니다. (ex. 3)
- 바로 뒤에 정수별점을 5점만점 퍼센트로 표현했을 때 값을 실수로 출력해줍니다. (ex. 60.0%)
- 이어서, 입력한 모든 문장 앞에 번호를 붙여서 모두 출력 해줍니다.
ex) 입력 예시
백종원 돼지고기 김치찌개 만들기
4.5
돼지고기는 핏물을 빼주세요.
잘익은 김치 한포기를 꺼내서 잘라주세요.
냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
다진마늘 한스푼, 설탕 한스푼 넣어주세요.
종이컵으로 물 8컵 부어서 센불에 끓여주세요.
핏물 뺀 돼지고기를 넣어주세요.
된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
중불로 줄여서 오래 끓여주세요~!!
마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^
예시 출력
[ 백종원 돼지고기 김치찌개 만들기 ]
별점 : 4 (80.0%)
1. 돼지고기는 핏물을 빼주세요.
2. 잘익은 김치 한포기를 꺼내서 잘라주세요.
3. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
4. 다진마늘 한스푼, 설탕 한스푼 넣어주세요.
5. 종이컵으로 물 8컵 부어서 센불에 끓여주세요.
6. 핏물 뺀 돼지고기를 넣어주세요.
7. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
8. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
9. 중불로 줄여서 오래 끓여주세요~!!
10. 마지막에 파 쏭쏭 썰어서 마무리하면 돼요^^
이에 대해 내가 작성한 코드답
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String title = sc.nextLine();
float rate = sc.nextFloat();
String title = sc.nextLine();
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();
System.out.println("[ " + title + " ]");
int intRate = (int)rate;
System.out.print("별점 : " + intRate);
double percentageRate = intRate * 100 / 5.0;
System.out.println(" (" + percentageRate + "%" + ")");
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);
}
}
내가 작성한 코드답으로 시행했을시 java 답변
[ 백종원 돼지고기 김치찌개 만들기 ]
별점 : 4 (80.0%)
1.
2. 돼지고기는 핏물을 빼주세요.
3. 잘익은 김치 한포기를 꺼내서 잘라주세요.
4. 냄비에 들기름 적당히 두르고 김치를 넣고 볶아주세요.
5. 다진마늘 한스푼, 설탕 한스푼 넣어주세요.
6. 종이컵으로 물 8컵 부어서 센불에 끓여주세요.
7. 핏물 뺀 돼지고기를 넣어주세요.
8. 된장 반스푼, 양파 반개, 청양고추 한개를 썰어서 넣어주세요.
9. 간장 두스푼반, 새우젓 두스푼, 고춧가루 두스푼반 넣어주세요.
10. 중불로 줄여서 오래 끓여주세요~!!
문제점 발견
원했던 예시출력에서 System.out.println("1. " + input1); 답변이 1. 돼지고기는 핏물을 빼주세요로 나와하나
전부 한줄씩 밑으로 밀려서 내용이 나옴
강의 해결 답변
import java.util.Scanner;
public class Main01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String title = sc.nextLine();
float rate = sc.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();
title = "[ " + title + " ]"; // [ 제목 ]
System.out.println(title);
int intRate = (int)rate; // 강제 형변환
System.out.println(intRate);
double percentageRate = intRate * 100 / 5.0; // 자동 형변환
System.out.println(percentageRate);
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 rate = sc.nextFloat(); 밑에 sc.nextLine(); 추가
오작동 이유는 숫자 입력후 개행을 위한 문자가 제거되지 않았기 때문,
개행문자는 \n 이며 이것이 숫자다음오는 개행문자로 이게 input1으로 들어가 출력되어
1. 자리에 빈칸으로 출력이됨
다시말해서 작동후
'4.5'
'돼지고기는 핏물을 빼주세요.'
라고 입력해줫지만 실제로는
'4.5'
'\n' = 빈칸으로 나옴
'돼지고기는 핏물을 빼주세요.'
형태로 입력이되어서 문제가 됨.
이를 해결위해 입력값하단에 숫자입력후 개행문자를 제거하는 코드를 입력함
느낀점
Java 기초에 대해 알게 되었음.
학습하면서 용어 및 개념에 대해서 개인적으로 정리하면 좀더 습득이 잘됨.
금일 오류에 대해 튜더님과 대화 하면서 강의가 만능은 아니라는 것을 확인함.
이후 튜더님 조언으로 다른 사람과 비교했을때 배움속도가 느리더라도
기본개념을 정확하게 이해해야 지금처럼 문제점을 바로바로 찾을수 있으며
실력향상에 도움을 준다는 것을 말해 주시면서 현재 내가 배우는 방법이 틀리지 않았다고 느낌.
'개발자 일지 > TIL' 카테고리의 다른 글
스파르타 내일배움캠프 11일차 231014 (1) | 2023.10.19 |
---|---|
스파르타 내일배움캠프 10일차 231013 (0) | 2023.10.19 |
스파르타 내일배움캠프 4일차 231007 (0) | 2023.10.19 |
스파르타 내일배움캠프 3일차 231006 (0) | 2023.10.19 |
스파르타 내일배움캠프 2일차 231005 (0) | 2023.10.19 |