Notice
Recent Posts
Recent Comments
Link
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Tags
more
Archives
Today
Total
관리 메뉴

엘라의 개발 스케치 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:59

To-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 작성을 위해서라도 공부하는 중 문제가 발생하면 해당 내용을 공부하면서 실패한 내용까지 모두 시도한 내용을 정리해두기
Comments