공동 공부 ( 3359 명 ) 
 이것 을 통해서 추론 할 수 있 는 것 은 자바 에플리 케이 션 실행 명령 인 java InputDemo 뒤 에 따라오 는 값 의 숫자 만큼 변수 args 에 어떤 값 이 들 어 있 다는 점 이 다 . 
 이번 에 는 자바 앱 이 실행 되 고 있 는 동안 에 사용 자 의 입력 을 받 는 법 을 알아보 자 . 자바 에서 기본 적 으로 제공 하 는 라이브러리 중 에 scanner 을 이용 하 면 쉽 게 사용 자 의 입력 을 잡 을 수 있 다 . 
 안타깝 게 도 우리 는 아직 라이브러리 나 패키지 와 같 은 개념 을 배우 지 않 았 다 . 아직 은 이 로직 을 샅샅이 이해 하 는 것 은 무리 이 기 때문 에 입력 을 받 는 방법 에 대한 전체 적 인 흐름 을 파악 하 는 데 집중 하 자 . 
 위 의 예제 를 실행 하 고 숫자 를 입력 하 면 입력 한 숫자 의 1000 배 가 출력 될 것 이 다 . 예제 에서 우리 가 주목 해야 할 부분 은 sc . nextInt ( ) 가 실행 되 면 자바 는 사용 자 의 입력 이 있 을 때 까지 변수 i 에 값 을 할당 하 지 않 고 대 기 상태 에 있 게 된다 . 키보드 로 데이터 를 입력 하 고 엔터 를 누르 면 비 로서 i 에 값 이 담기 고 i * 1000 을 통해서 입력 값 에 1000 이 곱해 지 고 그 결과 가 화면 에 출력 된다 . 
 아래 의 코드 는 연속 적 으로 값 을 입력 할 수 있 고 , 입력 한 값 에 1000 을 곱한 결과 를 출력 하 는 예제 다 . 
 sc . hasNextInt ( ) 는 입력 값 이 생기 기 전 까지 실행 을 유보 시키 는 역할 을 한다 . 만약 입력 한 값 이 int 형 이 아닐 경우 는 false 를 리턴 하 고 , int 로 표현 할 수 있 는 형식 의 숫자 형 인 경우 는 true 를 리턴 한다 . 따라서 위 의 코드 는 사용 자 가 입력 을 할 때 가지 실행 을 기다렸 다가 입력 이 일어나 면 반 복문 이 동작 하 면서 입력 값 의 1000 배 를 곱한 수 가 출력 된다 . 
 여러 형태 의 입출력 
 결과 는 파일 의 내용 이 무엇 인 가 에 따라서 달라질 것 이 다 . 이 또한 분명 한 입력 값 이 다 . 프로그램 으로 유입 되 는 모든 정보 는 입력 값 이 다 . 
 물론 입력 이나 출력 이 꼭 텍스트 여야 하 는 것 은 아니 다 . 아래 URL 에 담겨 있 는 코드 는 자바 를 이용 해서 그래픽 컬 한 사용자 조작 수단 을 만드 는 방법 을 보여준다 . 이 예제 는 복잡 하 기 때문 에 지금 은 코드 의 내용 을 생각 하 지 말 자 . 
 Java Tutorials Code Sample - DialogDemo . java 
 이렇게 해서 Java 수업 시즌 1 이 끝 났 다 . 시즌 2 의 핵심 은 객체 지향 ( Object Oriented Programming ) 이 다 . 자바 가 PHP 나 JavaScript , Python 과 같 은 언어 보다 어려운 이유 는 객체 지향 때문 이 라고 해도 과언 이 아니 다 . 이 들 언어 도 자바 와 유사 한 객체 지향 기능 을 가지 고 있 다 . 하지만 객체 지향 을 모르 고 도 프로그래밍 이 충분히 가능 하 다 . 반면 에 , 자바 는 객체 지향 을 사실상 강제 한다 . 객체 지향 을 안 쓰 고 도 훌륭 한 Python 프로그램 을 만들 수 있 지만 , 객체 지향 을 모르 고 좋 은 Java 프로그램 을 만들 수 는 없 다 . 바로 이런 이유 때문 에 Java 입문 에 는 더 많 은 시간 과 인내 와 노력 이 필요 한 것 이 다 . 
 봤 어요 ( 971 명 ) 
 과연 다 볼 수 있 을까 ? 9 일 전 
 200108 완 
 엘비 한 달 전 
 이재우 2 개월 전 
 다야 2 개월 전 
 gwonran 2 개월 전 
 워 나 3 개월 전 
 aivyss 3 개월 전 
 2019 . 09 . 26 . 절차 지향 완료 . 
 려차 3 개월 전 
 GY 3 개월 전 
 2019 - 09 - 23 수강 완료 
 190917 Note 
 * 입력 과 출력 
 다양 한 입력 방법 들 에 대해서 배웠 다 . 
 시즌 1 The End 
 시즌 2 의 객체 지향 이 기대 가 된다 ! ! 
 오승 씨 4 개월 전 
 여기 서 값 의 숫자 라고 하 는 것 보다 값 의 개수 라고 수정 을 하 는 게 더 좋 지 않 을까요 
 1 2 3 입력 했 을 때 출력 값 이 3 이 니까 단순히 인자 들 의 개수 가 아니 라 마지막 숫자 가 3 이 라 출력 값 이 3 이 아닌가 오해 했 네요 ㅠㅠ 
 doevery 4 개월 전 
 시즌 1 수강 완료 
 김혜민 5 개월 전 
 자바 main 함수 가 시작 할 때 인자 ( 매개변수 ) 를 받 을 수 있 습니다 
 하지만 업무 에서 는 잘 쓰이 지 않 으니 
 혹시 입력 받 아야 한다면 찾아볼 수 있 도록 기능 이 있 다는 것 만 알 아 두 면 됩니다 . 
 GUI 는 쓴다면 그때 공부 하 면 됩니다 . 회사 에서 쓰 고 있 더라도 놀라 지 마세요 . 
 시즌 1 강의 하 느라 고생 하 셨 습니다 . 
 jenniferjang 0221 5 개월 전 
 시즌 1 완료 
 모야 5 개월 전 
 그런데 이걸 어떻게 사용 해야 하 는지 ㄷ 잘 모르 겟 어요 . .. 
 CutyBoy 5 개월 전 
 C 언어 하 고 C ++ 하 고 C # 하고 이거 보 니까 두 시간 만 에 시즌 1 을 끝냈 네요 . .. 
 다른 분 들 도 이거 집중 해서 봤 다면 다른 언어 도 쉽 게 배울 수 있 을 거 예요 ! 
 키위 6 개월 전 
 어설프 게 배운 자바 다시 한 번 배우 면서 잘 다듬 어 보 겠 습니다 ! 
 Hyeon - Jun Ha 6 개월 전 
 진한 6 개월 전 
 sc . close or sc . close 없이 콘 솔창 에서 입력 을 마치 고 출력 을 하 면 코딩 스스로 끝나 는 것 과 차이 가 무엇 인가요 ? 
 빵 6 개월 전 
 ( 4 / 6 ) 에서 nextInt ( ) 메소드 는 Scanner 가 있 을 때 만 쓸 수 있 는 건가 여 ? 
 코딩 짱 고도 6 개월 전 
 07 . 10 1 부 완료 
 얼 그레 이 6 개월 전 
 시즌 1 을 끝냈 다니 감회 가 새롭 네요 ㅎㅎ 감사 합니다 ! 190708 
 6 / 17 시작 7 개월 전 
 6 / 20 시즌 1 1 회 완료 
 비 전공 자 로 커리어 를 전환 하 기 위해 
 공부 를 하 며 내 가 잘 하 고 있 는지 , 하 고 있 는 게 맞 는지 
 회의감 이 들 때 가 있 었 습니다 . 그렇 기 때문 에 포기 해야 하나 생각 이 들 때 도 있 었 구요 , 
 하지만 이 강의 마지막 동영상 을 보 며 힘 이 납니다 . 
 내일 부터 는 힘 을 내 서 객체 지향 을 공부 해야 겠 네요 ^^ 
 야근 요정 7 개월 전 
 힘들 었 네요 . . 집중력 이 모자라 이 까지 오 기 도 힘들 었 는데 . . 시즌 1 마무리 영상 에서 많 은 공감 느꼈 어요 . . 
 전공 자 가 아니 라 힘들 어서 너무 공감 되 는 부분 많 았 어요 감사 하 고 또 감사 합니다 . 
 시즌 1 영상 이 없 었 으면 아마 중도 포기 하 지 않 았 을까 싶 을 정도 네요 
 다시 힘내 서 객체 지향 으로 달려갑니다 ! 
 JLetter 7 개월 전 
 강의 도 훌륭 하 지만 설명 하나하나 에 진심 이 느껴 지 는 것 같 아 너무 좋 습니다 . 감사 합니다 ! 
 김동현 8 개월 전 
 야부키 죠 8 개월 전 
 이런 훌륭 한 강의 들려 주 셔서 정말 감사 합니다 ㅠㅠㅠㅠ자바 강의 듣 고 어플리케이션 개발 할께요 ㅠㅠㅠ 
 항상 정말 좋 은 강의 , 덕분 에 절차 적 자바 를 잘 마무리 할 수 잇 습니다 
 오늘 로써 시즌 1 3 번 들 었 습니다 . ( 시즌 2 는 두 번 들 었 는데 헷갈리 는 부분 이 아직 도 많이 있 습니다 . ) 
 이제 겨우 시즌 1 전체 를 이해 했 습니다 . 감사 합니다 . 
 Seoung - min Kim 10 개월 전 
 / / quiz 2 
 * 정수 를 입력 받 아서 50 이 라면 " 50 입니다 " , 50 이 아니 라면 " 50 이 아닙니다 " 를 출력 합니다 . 
 * 조건 : if 문 을 사용 하 지 않 음 . 
 * 힌트 : 중첩 while 문 을 사용 
 제 가 중첩 while 문 부분 에서 활용 하 려고 하 다 보 닌깐 좀 했 갈리 더라 고여 그래서 도움 을 요청 합니다 . 
 YukiHo 10 개월 전 
 시즌 1 을 끝냈 네요 ! ~~ 이제 시즌 2 를 마스터 해야죠 ~ 고맙 습니다 . 
 랑 호앙 10 개월 전 
 입력 과 출력 이 다양 하 게 적용 이 되 는 걸 알 았 습니당 
 한마디 로 원인 에 따른 결과 인 거 같 은데 세상 다반사 가 함수 라는 걸 다시 한 번 실감 해 봅 니당 
 잠 만보 11 개월 전 
 호두 11 개월 전 
 잊어버렸 거나 , 완전히 내것이 되 었 거나 . 
 닷 미 11 개월 전 
 학원 보다 훨씬 나아요 ㅠㅠ 
 j - graphy 11 개월 전 
 2019 . 2 . 2 . 학습 완료 
 그러 면 입력 값 이 2 이 라 했 을 때 2000 이 하면 에 계속 반복 해서 나와야 하 는데 왜 다시 입력 값 을 받 을 수 있 게 되 는지 설명 좀 해주 새요 부탁 드립니다 . 
 이미 5 개월 전 댓글 이 라 이해 가 완전히 되 셨 을지 모르 겠 지만 , 제 자신 의 이해 를 돕 기 위해서 저 또한 댓글 을 남 깁니다 . 
 while 문 안 에 있 는 hasNextInt ( ) 라는 메 서 드 는 sc 라는 객체 에서 가지 고 있 냐 ? 다음 에 int 를 이 라는 것 입니다 . 즉 , sc 가 다음 에 입력 받 을 값 이 int 냐 아니 야 를 묻 게 되 는 거 죠 . 즉 , 여기 서 int 를 받 아야 만 true 가 반환 되 는 겁니다 . 
 하지만 여기 서 반환 되 는 값 은 입력 한 int 값 이 아닌 boolean 타입 의 데이터 ( true or false ) 이 죠 . 즉 , 사용 자 가 입력 한 int 값 은 어떻게 받 느냐 바로 nextInt 라는 메서 드 를 통해서 입니다 . 
 그러 니 사용 자 가 입력 한 값 이 int 데이터 형 이 었 을 경우 ( hasNextInt ( ) 가 참 일 경우 ) 반 복문 은 실행 되 고 , 사용 자 가 입력 한 정수 ( nextInt ) 에 1000 을 곱한 값 을 출력 하 고 다시 처음 으로 돌아가 while 문 에 걸린 조건 이 참 인지 를 보 게 되 는 거 죠 . 
 그럼 여기 서 다시 hasNextInt 에 걸리 게 되 니 , 대기 상태 에 들어가 게 되 고 ( 사용 자 가 값 을 입력 하 지 않 았 기 떄문에 ) , 사용 자 가 입력 할 값 이 int 인지 를 판단 하 는 상태 에 들어가 게 되 는 것 입니다 . 헷갈리 는 지점 이 nextInt 가 입력 받 은 값 을 반환 하 기 때문 이 라고 생각 하 는데 hasNextInt 는 입력 한 값 의 데이터 타입 이 무엇 인지 에 관심 이 있 고 , 그 값 으로 실제 적 인 무엇 을 하 지 않 습니다 . 그러 니 입력 받 은 값 의 데이터 타입 만 확인 하 고 맞 다 아니 다 로만 반환 하 는 거 뿐 이 죠 . 그리고 실제 적 으로 그걸 가지 고 오 는 메서 드가 NextInt 가 되 는 것 이 구요 . 
 이상 제 소견 이 었 습니다 . 혹시 라도 제 답변 에 이상 한 부분 이 있 으면 비판 해 주 시 면 감사 하 겠 습니다 
 2 / 6 강 의 첫 번 째 예제 
 main 메소드 앞 에 void 가 있 는 것 은 ' 출력 값 ' 이 없 다는 뜻 이 라고 하 셨 는데 , 
 ' 출력 값 ' 이 ' 반환 값 ' 과 다른 뜻 이 라면 void 는 해당 메소드 안 에 ' 반환 값 ' , 즉 return 이 없 을 때 만 쓰이 는 것 이 고 , 
 전자 로 이해 하 는 것 이 맞 나요 ? 
 예 로니 1 년 전 
 2019 . 01 . 16 - 시즌 1 완료 
 저 도 그게 잘 . ... 1 년 전 
 자세히 는 답변 드리 기 어렵 지만 sc 라는 이름 의 스캐너 가 file 라는 이름 의 파일 ( 객체 ) 을 들여 나 보 게 되 는데요 . 
 스캐너 ( Scanner ) 객체 의 인 스턴스 ( sc ) 가 가진 메소드 가 여기 선 hasNextInt 와 nextInt 두 가지 입니다 . 
 hasNextInt 파일 내용 첫 부분 부터 시작 해서 다음 칸 에 숫자 가 들 어 있 는지 를 참 거짓 으로 알려 주 는 메소드 입니다 . 
 그리고 nextInt 는 그 숫자 가 얼마 인지 를 알려 주 는 메소드 인데 이름 의 ' next ' 라는 의미 처럼 스캐너 가 다음 으로 한 칸 이동 해서 그 숫자 를 읽 어 오 게 됩니다 . 
 이게 반복 되 면 스캐너 가 한 칸 씩 파일 을 쭉 읽 어 가 면서 다음 칸 에 숫자 가 나오 지 않 을 때 hasNextInt 가 false 값 을 반환 하 고 while 루프 가 끝나 게 되 죠 . 
 조금 더 궁금 하 신 분 들 은 포인터 와 입출력 스트림 에 대해 알아보 시 면 재미있 을 겁니다 : ) 
 IT 에 재능 이 없 는 놈 1 년 전 
 이 온라인 강의 가 없 었 으면 예전 에 국비 지원 프로그램 IT 강의 못 따라가 고 포기 했 을 거 에요 . .. 
 초보 자 도 알아듣 기 쉬운 친절 한 강의 정말 감사 드리 고 , 새해 복 많이 받 으세요 ~ 
 김 요셉 1 년 전 
 ㅋㅋㅋ ㅋㅋㅋ ㅋㅋㅋ ㅋㅋㅋ ㅋㅋㅋ ㅋㅋㅋ ㅋㅋㅋ ㅋㅋㅋ 너무 공감 입니다 
 몽몽이 1 년 전 
 이것 은 둘 중 의 하나 다 . 잊어버렸 거나 , 완전히 내것이 되 었 거나 . 
 크 ~ 명언 입니다 . 
 광 길 1 년 전 
 이 고 잉 님 진심 저희 학교 교수 님 으로 초빙 하 고 싶 습니다 . .. 항상 감사 합니다 
 임 효석 1 년 전 
 sc . hasnextint ( ) 가 계속 해서 true or false 를 묻 게 하 는 게 아닐까요 ? while 문 안 에서 계속 해서 참 / 거짓 인지 판단 하 는데 그걸 sc . hasnextint ( ) 함수 가 . . 
 2018 - 03 - 16 08 : 14 : 40 egoing