본문 바로가기
코딩/JAVA

[JAVA] 자바 문법 입력하기

by 인생최적화 2020. 6. 9.
반응형

 

자바 기초 문법 입력하기

자바를 처음 접하면 가장 많이 사용하는
Scanner 클래스로 콘솔창에 입력값 넣기

출력은 아래 링크를 참조해주세요
happy-inside.tistory.com/31

 

[JAVA] 자바 문법 출력하기

자바 기초 문법 출력하기 내용에 앞서 혹시 모르시는 분들을 위해 팁 하나를 드리자면 코드를 입력 후 결과를 실행하는 단축키는 [ ctrl + F11 ]입니다 상단 메뉴 중에서 [ 녹색 재생 아이콘 ]이 코��

happy-inside.tistory.com

 


 

콘솔 창에서 입력값을 넣기 위해서는
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);
		
	}
}

 


 

연습이 최선입니다

'인생최적화'

 

 

반응형

댓글