자바 기초 문법 입력하기
자바를 처음 접하면 가장 많이 사용하는
Scanner 클래스로 콘솔창에 입력값 넣기
출력은 아래 링크를 참조해주세요
happy-inside.tistory.com/31
콘솔 창에서 입력값을 넣기 위해서는
Scanner 클래스를 불러와야 합니다
'Scanner'는 스캐너 클래스입니다
앞에 대문자가 들어가는 것은 모두 클래스 소속입니다
'scanner' 'input' 'sc' 는
단순한 변수명입니다
편하신대로 쓰시면 됩니다
'new Scanner(System.in)'
시스템의 입력장치로부터 읽는 Scanner를 생성합니다
상단에 보면 import java.util.Scanner 로
스캐너 클래스를 불러온 것을 볼 수 있습니다
이것을 손으로 직접 입력해도 되지만
자동완성 기능을 필수적으로 권장합니다
[ 자동완성하기 ]
'Scanner' 까지만 입력한 후 [ ctrl + space bar ] 를 누르면
자동완성 리스트가 나옵니다
'Scanner - java.util'
우리가 사용할 입력 클래스입니다
엔터를 누르면 상단에 자동으로 import 가 된것을 볼 수 있습니다
의심간다 싶은 것들은
전부 다 컨트롤+스페이스바로 확인해보세요
뒷 부분도 'new'를 치고 한 칸 띄우고
'ctrl + space bar' 를 누르면
간단하고 빠르게 Scanner 클래스를 불러올 수 있습니다
개발자는 '귀찮음'을 느껴야 된다고 들었습니다
그래야 '더 나은 방법'을 찾는다고
[ 기본 방식 ]
package com.test;
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
//스캐너 클래스 생성
Scanner sc = new Scanner(System.in);
//변수 선언
String name;
//입력하기
System.out.println("이름을 입력하세요");
name = sc.nextLine(); //입력값을 변수 'name'에 저장
System.out.println("입력받은 이름 : " + name);
}
}
코드를 실행하면
'이름을 입력하세요' 밖에 보이지 않지만
현재 'name' 변수에 값을 담기 위해
입력값을 받으려고 대기 중인 상태입니다
콘솔창을 클릭하면 커서가 깜빡이는 것을 볼 수 있습니다
'개나리'를 입력하고 '엔터'를 누르면
입력받은 결과가 출력되는 것을 볼 수 있습니다
입력값을 변수에 담고 출력하는 기본적인 방식입니다
바로 예제로 들어가겠습니다
[ 첫 번째 예제 ]
package com.test;
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
//스캐너 클래스 생성
Scanner sc = new Scanner(System.in);
//변수 선언
String name;
String hobby;
String email;
System.out.println("이름을 입력하세요");
name = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'name' 변수에 저장
System.out.println("취미를 입력하세요");
hobby = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'hobby' 변수에 저장
System.out.println("이메일 주소를 입력하세요");
email = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'email' 변수에 저장
System.out.println("----------------");
System.out.println("입력받은정보");
System.out.println("이름 : " + name);
System.out.println("취미 : " + hobby);
System.out.println("이메일 : " + email);
}
}
[ 두 번째 예제 ]
입력값도 각 타입형식에 맞게 입력해야 합니다
package com.test;
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
//스캐너 클래스 생성
Scanner sc = new Scanner(System.in);
int age;
int phone;
double weight;
double height;
System.out.println("나이 입력");
age = sc.nextInt(); //입력받은 숫자를 int타입 'age'변수에 저장
System.out.println("학생번호 입력");
phone = sc.nextInt(); //입력받은 숫자를 int타입 'phone'변수에 저장
System.out.println("몸무게 입력");
weight = sc.nextDouble(); //입력받은 숫자를 double타입 'weight'변수에 저장
System.out.println("키 입력");
height = sc.nextDouble(); //입력받은 숫자를 double타입 'height'변수에 저장
System.out.println("-----------------");
System.out.println("나이 : " + age);
System.out.println("학생번호 : " + phone);
System.out.println("몸무게 : " + weight);
System.out.println("키 : " + height);
}
}
[ 세 번째 예제 ]
package com.test;
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
//스캐너 클래스 생성
Scanner sc = new Scanner(System.in);
//변수 선언
String name;
int age;
double height;
String hobby;
String email;
System.out.println("이름을 입력하세요");
name = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'name' 변수에 저장
System.out.println("나이를 입력하세요");
age = sc.nextInt(); //입력받은 숫자를 int타입 'age'변수에 저장
System.out.println("키를 입력하세요");
height = sc.nextDouble(); //입력받은 숫자를 double타입 'height'변수에 저장
System.out.println("취미를 입력하세요");
hobby = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'hobby' 변수에 저장
System.out.println("이메일 주소를 입력하세요");
email = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'email' 변수에 저장
System.out.println("----------------");
System.out.println("입력받은정보");
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("키 : " + height);
System.out.println("취미 : " + hobby);
System.out.println("이메일 : " + email);
}
}
코드를 실행 시키고 입력값을 넣다가 오류가 발생했습니다
이름과 나이는 잘 입력했는데 키를 입력했더니
'취미'를 건너뛰고 '이메일'을 입력하라고 나옵니다
키를 입력할 때 '170.1'을 입력하고 엔터를 누르면
'170.1'은 변수에 담았지만 'Enter'값은 그대로 남아 있어서
다음 입력을 받으려고 대기중이었던 '취미'가 넘어가버린 것입니다
여기서 'nextLine()'과 'next()' 의 차이점을 알 필요성이 있습니다
nextLine() | next() |
'Enter'를 치기 전까지의 문자열을 모두 반환 | 'Space bar'를 치기 전까지의 문자열을 모두 반환 |
package com.test;
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
//스캐너 클래스 생성
Scanner sc = new Scanner(System.in);
//변수 선언
String content;
String content2;
System.out.println("내용을 입력하세요");
content = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'content' 변수에 저장
System.out.println("다음 내용을 입력하세요");
content2 = sc.next(); //스페이스바를 치기 전까지의 문자열을 'content2' 변수에 저장
System.out.println("-------------");
System.out.println("내용1 : " + content);
System.out.println("내용2 : " + content2);
}
}
next() 는 '스페이스 바'를 치기 전까지의 내용만 저장
[ 세 번째 예제 코드 수정 ]
숫자를 입력하고 바로 다음 문자열을 입력시킬 땐
next()를 써야 하니 상황에 맞게 써주시면 됩니다
package com.test;
import java.util.Scanner;
public class Input {
public static void main(String[] args) {
//스캐너 클래스 생성
Scanner sc = new Scanner(System.in);
//변수 선언
String name;
int age;
double height;
String hobby;
String email;
System.out.println("이름을 입력하세요");
name = sc.nextLine(); //엔터를 치기 전까지의 문자열을 'name' 변수에 저장
System.out.println("나이를 입력하세요");
age = sc.nextInt(); //입력받은 숫자를 int타입 'age'변수에 저장
System.out.println("키를 입력하세요");
height = sc.nextDouble(); //입력받은 숫자를 double타입 'height'변수에 저장
System.out.println("취미를 입력하세요");
hobby = sc.next(); //엔터를 치기 전까지의 문자열을 'hobby' 변수에 저장
System.out.println("이메일 주소를 입력하세요");
email = sc.next(); //엔터를 치기 전까지의 문자열을 'email' 변수에 저장
System.out.println("----------------");
System.out.println("입력받은정보");
System.out.println("이름 : " + name);
System.out.println("나이 : " + age);
System.out.println("키 : " + height);
System.out.println("취미 : " + hobby);
System.out.println("이메일 : " + email);
}
}
연습이 최선입니다
'인생최적화'
'코딩 > JAVA' 카테고리의 다른 글
[JAVA] 자바 이클립스 자동 저장 실행 (11) | 2020.06.12 |
---|---|
[JAVA] 자바 문법 연산자 (5) | 2020.06.11 |
[JAVA] 자바 문법 출력하기 (6) | 2020.06.08 |
[JAVA] 자바 문법 타입 변환하기 (6) | 2020.06.05 |
[JAVA] 자바 문법 변수 사용하기 (4) | 2020.06.04 |
댓글