inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

172만명의 커뮤니티!! 함께 토론해봐요.

Scanne r를 닫지 않는 이유

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

강의를 보다가 궁금한 점이 생겨서 질문드립니다. 김영한 선생님 강의에서 다른 자바 강의들에서도 스캐너를 사용하시고 close() 메서드로 닫지 않으시는데요. 챗지피티도 그렇고 검색해보니 스캐너를 닫아주는게 좋다고 하는데, 왜 닫아야 하는 건가요? 그리고 닫는게 맞는거면 왜 강의에서 닫지 않으시는지 궁금합니다. 김영한 선생님 뿐 아니라 다른 많은 강의에서도 스캐너를 잘 닫지 않더라고요. 자바가 아닌 시스템 자체에서 input 자원을 가져오는 거기 때문에 닫아줘야 한다고 하던데, 이 점이 궁금합니다!

  • java
  • 객체지향
  • scanner
포키통 댓글 1 좋아요 0 조회수 246

JAVA Scanner

미해결

package bufferTest; import java.util.Scanner; public class BufferTest { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String a = scan.next(); String[] arr1 = {"a"}; System.out.println(System.identityHashCode(a)); System.out.println(System.identityHashCode(arr1[0])); } } 왜 arr[0]과 a의 주소 값이 다른가요..??? 답변 주시면 정말 감사하겠습니다!

  • java
  • scanner
김민식 댓글 1 좋아요 0 조회수 139

[7. Scanner][문제와풀이4] ScannerWhileEx3 질문

해결됨

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

안녕하세요 선생님, 선생님께서 남겨주신 코드와 다르게 제 코드처럼 작성해도 무방할지 질문드립니다. [선생님 코드] 선생님께서 작성하신 코드는 input 지역변수의 스코프 값이 넓습니다. public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; int count = 0; int input = 0; System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : "); while (true) { input = scanner.nextInt(); if (input == -1) { break; } sum += input; count++; } double average = (double) sum / count; System.out.println("입력한 숫자들의 합계 : " + sum); System.out.println("입력한 숫자들의 평균 : " + average); } [제가 작성한 코드] 저는 input의 스코프값이 넓다고 생각해서 자체적으로 while문에서만 해당 변수를 부여하고, 사용 했는데 하기와 같이 사용해도 무방할까요? public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int sum = 0; int count = 0; System.out.println("숫자를 입력하세요, 입력을 중단하려면 -1을 입력하세요 : "); while (true) { int input = scanner.nextInt(); if (input == -1) { break; } sum += input; count++; } double average = (double) sum / count; System.out.println("입력한 숫자들의 합계 : " + sum); System.out.println("입력한 숫자들의 평균 : " + average);

  • java
  • 객체지향
  • scanner
  • 문제와풀이
  • 질문
개화동과자사장 댓글 2 좋아요 2 조회수 393

[Scanner] 7-3.반복예제(ScannerWhile3) 질문

해결됨

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

안녕하세요 선생님 선생님께서 작성하신 코드와 다르게 하기 코드처럼 작성해도 무방할까요? 코드 결과값은 동일하게 나타내는 것으로 확인되었습니다. 다만 차이가 있거나 더 좋은 코드를 작성한다면 어떤 코드가 좋을지 몰라 질문드립니다! [선생님 작성 코드] - while문 출력 후 -> 입력 정수의 합 출력 public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum = 0; while (true) { System.out.print("정수를 입력하세요 (0을 입력하면 종료) : "); int num = input.nextInt(); if (num == 0) { break; } sum += num; } System.out.println("입력한 모든 정수의 합 : " + sum); [제가 작성한 코드] while문 내 if 구문에서 -> 입력 정수의 합 출력 public static void main(String[] args) { Scanner input = new Scanner(System.in); int sum = 0; while (true) { System.out.print("정수를 입력하세요 (0을 입력하면 종료) : "); int num = input.nextInt(); if (num == 0) { System.out.println("입력한 모든 정수의 합 : " + sum); break; } sum += num; }

  • java
  • 객체지향
  • 수업
  • scanner
  • 반복예제
  • 예제3번
개화동과자사장 댓글 1 좋아요 0 조회수 285

Scanner 큐

미해결

김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음

public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("첫 번째 숫자와 두 번째 숫자 모두 0을 입력하면 프로그램을 종료합니다."); while (true) { System.out.print("첫 번째 숫자를 입력하세요:"); int num1 = scanner.nextInt(); System.out.print("두 번째 숫자를 입력하세요:"); int num2 = scanner.nextInt(); if (num1 == 0 && num2 == 0) { System.out.println("프로그램 종료"); break; } int sum = num1 + num2; System.out.println("두 숫자의 합: " + sum); } } 위 코드를 실행시켰을때 첫 번째 숫자를 입력하세요 : 10\n 이렇게 입력하고 두번째 줄에 두 번째 숫자를 입력하세요 : 20\n 이렇게 제가 입력했다고 가정했을때 큐에서 문자열이 어떻게 들어가고 나오는지 궁금합니다. 10하고 enter를 치면 num1은 정수 부분을 읽어들여서 10만 저장하고 큐에는 현재 '\n'가 남아있는 상황이고 그 이후에 20enter를 치게 된다면 20\n을 큐에 집어넣은 상황이므로 큐에는 현재 \n20\n이렇게 들어가있을텐데 여기서 num2는 바로 20을 꺼낼 수 있는 건가요?? 앞에 있는 \n 값은 무시하고 정수만 바로 뽑아내는건가요?

  • java
  • 객체지향
  • scanner
나물사랑 댓글 1 좋아요 1 조회수 370

Scanner 문제

미해결

김영한의 실전 자바 - 기본편

scanner.nextInt() 다음에 바로 scanner.nextLine()을 하는 이유는 무엇인가요? 그리고 위 코드처럼 하지 않을 시에 왜 이러한 결과가 발생하는지 궁금합니다.

  • java
  • 객체지향
  • scanner
nawonjin12 댓글 1 좋아요 0 조회수 311

if 절 작성 시, input tool 완성시켜야 하나요?

미해결

if절 작성 시, Scanner 이런 툴을 작성하고 if 절 적어도 상관없나요? 아니면 문제 바이 문제 인가요? import java.util.*; psvm Scanner input = new Scanner(System.in); , , , if . . .. .

  • if
  • input
  • scanner
유학생 댓글 1 좋아요 0 조회수 182

인기 태그

인프런 TOP Writers

주간 인기글