엘라의 개발 스케치 Note
[TIL] 내일배움캠프 9일차(23.05.23.) - sc.next() vs. sc.nextLine(), println vs. print, sc.nextFloat()와 개행문자 본문
내일배움캠프/TIL
[TIL] 내일배움캠프 9일차(23.05.23.) - sc.next() vs. sc.nextLine(), println vs. print, sc.nextFloat()와 개행문자
엘라랑이 2023. 5. 23. 23:59To-do
- 특강 'TIL 작성법'
- Java 문법 종합반 강의 수강 및 강의노트 정리
TIL
- TIL 작성 특강
- Windows에서 IntelliJ 설정 들어가기
< IntelliJ 설정: Mac preferences = Windows settings >
* 강의에 나오는 preferences를 아무리 찾아도 없어서 생각해보니 저번 Java 핸드북 공부 중에도 헤맸던 기억이 남
* Settings를 들어가보니 강의 상의 창과 구성이 똑같아 설정 창의 명칭이 다르다는 것을 개달음
* Mac과 Windows의 프로그램이 조금씩 차이가 있다는 것을 다시 한번 느낌
-> 오늘은 금방 찾았지만 헷갈릴 때는 구글링해보는 것도 좋을 것 같음
< 설정 들어가는 방법>
방법1. File – Settings
방법2. 우측 상단 톱니바퀴 모양 아이콘 - Settings
방법3. 단축키 ‘Ctrl + Alt + S’
- 변수 타입 - 숫자와 문자, 문자와 문자열, 참조형 심화, 입력과 출력, 비트와 바이트
- 변수의 형변환 - 강제 형변환과 자동 형변환
* 주석 처리 단축키 : Ctrl + /
* 종료 표시인 ';' 잊어버리지 않도록 주의! (자꾸 빠뜨려 오류표시가 났음)
- 스캐너 입력 중 sc.next() vs. sc.nextLine()
* 숙제 코드 작성 중 요리 레시피를 한 '문장'씩 입력하려고 했으나
* 'sc.next()'로 입력하니 띄어쓰기 단위로 한 문절씩 저장 -> 문장 단위의 입력 및 저장이 되지 않는 문제 발생
* 구글링 ‘sc.next()’를 검색하여 해당 내용 공부
* 'sc.nextLine()'으로 대체하여 입력하니 원하는 대로 문장 단위 내용 입력 및 저장 완료
* 코딩은 글자 몇 자가 추가 되는 것만으로 입출력에 엄청난 차이가 생긴다는 것을 한번 더 깨달음
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 입력
// {1. 가지의 꼭지 부분은 자르고 통으로 두께 1~2cm 크기로 자른다.
// 2. 자른 가지는 그릇에 담아 전자레인지에 4~5분 정도 돌린다.
// 3. 간장, 설탕, 식초, 다진 마늘을 넣고 양념을 만든다.}
// sc.next()
String input1 = sc.next();
String input2 = sc.next();
String input3 = sc.next();
// 출력
// {1. 가지의
// 2. 꼭지
// 3. 부분을}
// => 문장 단위가 아닌 문절 단위로 저장되며 2,3 문장들을 입력하기도 전에 출력됨
// sc.nextLine()
String input1 = sc.nextLine();
String input2 = sc.nextLine();
String input3 = sc.nextLine();
// 출력
// {1. 가지의 꼭지 부분은 자르고 통으로 두께 1~2cm 크기로 자른다.
// 2. 자른 가지는 그릇에 담아 전자레인지에 4~5분 정도 돌린다.
// 3. 간장, 설탕, 식초, 다진 마늘을 넣고 양념을 만든다.}
// => 입력한 문장 그대로 저장됨
- System.out. 출력 중 println(한 줄 띄기) vs. print(한 줄 띄지 않기)
* 출력을 ‘별점 : 4 (80.0%)’ 이렇게 4와 (80.0%)를 옆으로 붙이고 싶었으나, 둘 다 println으로 사용할 경우 한 줄 씩 띄어서 작성되는 문제 발생
* println이 한 줄 띄기, print가 한 줄 띄지 않기라는 내용은 알고 있었음
* 처음에는 print가 앞에서 영향을 주어 옆으로 붙게 되는 줄 알고 perRate 부분에 print 시도해 봤으나 예상 결과의 반대로 출력됨
int intRate = 4
double perRate = intRate/ 5.0 * 100; // 80.0
System.out.println("별점 : " + intRate);
System.out.print(" (" + perRate + "%)");
System.out.println("1. " + input1);
// 출력
별점 : 4
(80.0%) 1. 1번 문장
* 위의 결과를 토대로 print 뒤에 내용이 옆으로 붙게 된다는 것을 깨닫고 앞 부분에 print를 사용하니 원하는 대로 출력 되었음
int intRate = 4
double perRate = intRate/ 5.0 * 100; // 80.0
System.out.print("별점 : " + intRate);
System.out.println(" (" + perRate + "%)");
System.out.println("1. " + input1);
// 출력
별점 : 4 (80.0%)
1. 1번 문장
* 해설영상을 보니 처음부터 같이 출력하는 방법도 있었음
* 해설영상을 보니 조금 더 간단한 방법이 있는데 돌아온 것 같아 조금 아쉬움. 다음부터는 더 쉬운 방법은 없을까 조금 더 고민해보는 시도가 필요할 듯함
int intRate = 4
double perRate = intRate/ 5.0 * 100; // 80.0
System.out.println("별점 : " + intRate + " (" + perRate + "%)");
System.out.println("1. " + input1);
// 출력
별점 : 4 (80.0%)
1. 1번 문장
- 스캐너 입력 중 sc.nextFloat()와 개행문자
* sc.nextFloat()로 숫자를 입력 한 이후, 문장을 10문장 입력하고자 했으나 9문장만 입력되고 첫 번째 문장은 빈 값으로 저장되는 문제 발생
* 내일배움캠프 질문방에서 해당 문제에 대한 내용을 확인하여 참고 블로그 정독 후 적용
* 숫자를 입력할 시 개행문자(\n)가 자동으로 다음 라인에 입력됨
* 개행문자를 받을 라인을 추가하여 제거하면 해결 완료
* 질문방에 공부할 수 있는 내용이 많은 것을 알게 됨
// 오류 발생
Scanner sc = new Scanner(System.in);
float rate = sc.nextFloat(); // 소수점 실수 숫자 입력
String input1 = sc.nextLine(); // 숫자 입력 후 개행문자(\n)를 읽게 되어 빈값 출력
String input2 = sc.nextLine(); // 1번문장 입력
String input3 = sc.nextLine(); // 2번문장 입력 => 3번 문장은 입력하지 못하고 출력됨
// 출력
// 4.9
// 1.
// 2. 1번문장
// 3. 2번문장
// 오류 해결: 개행문자 제거
Scanner sc = new Scanner(System.in);
float rate = sc.nextFloat(); // 소수점 실수 숫자 입력
sc.nextLine(); // 숫자를 입력받고 엔터를 치면 Exception이 발생 -> 개행문자(\n)를 받을 라인을 추가해 개행문자 제거
String input1 = sc.nextLine(); // 1번문장 입력
String input2 = sc.nextLine(); // 2번문장 입력
String input3 = sc.nextLine(); // 3번문장 입력
// 출력
// 4.9
// 1. 1번문장
// 2. 2번문장
// 3. 3번문장
- 연산자 종류, 연산자 우선순위, 산술변환, 비트 연산
Next...
- 질문방에 있는 내용들은 나에게 문제가 있지 않더라도 배울 내용들이 많다는 것을 알게 됨 -> 시간될 때 다른 사람들은 어떤 오류가 생겨서 어떻게 해결했나 공부해보기
- TIL 작성을 위해서라도 공부하는 중 문제가 발생하면 해당 내용을 공부하면서 실패한 내용까지 모두 시도한 내용을 정리해두기
'내일배움캠프 > TIL' 카테고리의 다른 글
[TIL] 내일배움캠프 11일차(23.05.25.) (0) | 2023.05.25 |
---|---|
[TIL] 내일배움캠프 10일차(23.05.24.) - for문의 형태, 대입증감연산자 (2) | 2023.05.25 |
[TIL] 내일배움캠프 8일차(23.05.22.) (0) | 2023.05.22 |
[TIL] 내일배움캠프 5일차(23.05.19.) (0) | 2023.05.19 |
[TIL] 내일배움캠프 4일차(23.05.18.) (0) | 2023.05.18 |
Comments