giggs 2022. 4. 30. 18:09

 

Question. - nextLine()을 사용한 이유는?

 

 

 

 

 

  • 엔터키를 가져오려고
  • nextInt() 는 엔터키를 안가져온다.
  • 쭉 숫자만 하나하나 가져올 거면 nextInt() 상관없지만
  • 만약에 숫자를 입력받다가 문자열도 입력받으려고하면 에러발생

 

 

 

 

nextInt 로 숫자를 가져오다가 이번에는 nextLine을 사용해보면 출력 결과는?

 

 

 

 

  • abc를 가져오는것이아니라 가장 처음에 발생한 엔터키만 가져오고 끝나는 에러발생 가능성
  • nextLine() 3번을 써줘야지 우리가 원하는 abc가 출력된다.

 

 

 

 

 


 

 

 

nextInt() vs nextLine()

 

 

 

 

 

 

 

nextInt() = 3 출력

nextInt() = 7 출력

nextLine() = 엔터 출력

nextLine() = 엔터 출력

nextLine() = abc 엔터 출력

 

 

 

 

 

 


 

 

 

 

 

Question. - sc.close(); ?

 

 

  • 스캐너를 닫아주는 아이인데
  • 스캐너는 사실 사용했으면 반납을 해줘야하는 아이다.
  • 다쓰고나면 없애주는 것이 좋다.
  • 스캐너 객체 만들게 되면 콘솔이랑 연결이 되어있는 것이다.( System.in)키워드 때문에

 

 

 

 

 

 

  • 이 연결을 하고 있다는 자체가 자원을 사용하고 있다는 것
  • 가만히 놔둬도 상관은 없긴한데 연결이 안 끊어지고 물려있는 상태이다.
  • 연결 되어있는 것이 stream 이라하는데
  • 이stream낭비하는 것을 방지하고자 연결을 끊어줄 필요가 있는데
  • 이 연결을 끊어주는 명령이 sc.close();