본문 바로가기

Java

[Java] 05

입력 메소드

1. next()

- 사용자가 입력한 값을 String 타입으로 받아온다.

- 띄어쓰기로 구분하여 받아온다.

2. nextLine()

- 사용자가 입력한 값을 String 타입으로 받아온다.

- 엔터로 구분하여 받아온다.

3. nextInt()

- 사용자가 입력한 값을 int 타입으로 받아온다.

4. nextDouble()

- 사용자가 입력한 값을 double 타입으로 받아온다.

next(), nextInt(), nextDouble()을 사용할 경우 버퍼라는 공간에 엔터 값이나 나머지 값이 남아있을 수 있다.

그렇게 되면 그다음에 또 입력을 받을 때 버퍼에 남아있던 값이 입력되게 되며

원하는 대로 동작하지 않을 수 있다.

이를 방지하기 위해서 nextLine()을 사용하여 버퍼를 비워줄 수 있다.

next(), nextInt(), nextDouble()을 사용할 때는 버퍼에 남아있는 값이 있는지 없는지를 주의하자.

Casting(형변환) : 자료형을 바꾸는 것

1. 명시적 형변환

- (자료형)값;

(ex) (int)3.14

- String은 class 타입이기 때문에 메소드를 활용해야한다.

(ex) String → int : Integer.parseInt();

(ex) int → String : Integer.toString();

(ex) String → double : Double.parseInt();

(ex) double → String : Double.toString();

2. 자동 형변환

- 연산자를 활용하는 방법

(ex) 10 * 1.0

(ex) 10 - 0.0

 


실습(입력메소드)

1. next()

- 사용자에게 나이를 입력받아서 "당신의 나이는 ??살 입니다" 출력하기

import java.util.Scanner;

public class InputTest {
	public static void main(String[] args) {	
		Scanner sc = new Scanner(System.in);
		
		System.out.print("나이를 입력하세요 : ");
		String age = sc.next();
		System.out.printf("당신의 나이는 %s살입니다.\n", age);
	}
}

 

결과

 

- 사용자에게 금액을 입력받아서 "??원이 결제되었습니다" 출력하기

import java.util.Scanner;

public class InputTest {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.print("금액을 입력하세요 : ");
		String money = sc.next();
		System.out.printf("%s원이 결제되었습니다.\n", money);
	}
}

 

결과

 

2. nextInt()

- 사용자가 입력한 값을 int 타입으로 받아 출력하기

import java.util.Scanner;

public class InputTest2 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		System.out.print("나이를 입력하세요 >> ");
		int age = scan.nextInt();
		System.out.printf("입력된 나이 : %d\n", age);
	}
}

 

결과

 

3. nextDouble()

- 사용자가 입력한 값을 double 타입으로 받아 출력하기

import java.util.Scanner;

public class InputTest2 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		System.out.print("실수를 입력하세요 >> ");
		double d = scan.nextDouble();
		System.out.printf("%.2f가 입력됨\n", d);
	}
}

 

결과

 

4. nextLine()

- 사용자에게 주소를 입력받아서(무슨 시인지만) "당신의 주소는 ???입니다" 출력하기

import java.util.Scanner;

public class InputTest {
	public static void main(String[] args) {	
		Scanner sc = new Scanner(System.in);

		System.out.print("주소를 입력하세요 : ");
		String address = sc.nextLine();
		System.out.printf("당신의 주소는 %s입니다.\n", address);
	}
}

 

결과

 

​​

- 사용자에게 나이와 이름을 입력받아 출력하기

import java.util.Scanner;

public class InputTest3 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		System.out.print("나이를 입력하세요 >> ");
		String age = sc.nextLine();
		sc.nextLine(); // 버퍼에 남아있는 값을 지워주기 위한 용도
		System.out.print("이름을 입력하세요 >> ");
		String name = sc.nextLine();

		System.out.printf("당신의 이름은 %s, 나이는 %s살 입니다.\n", name, age);
	}
}

 

결과

 

실습(Casting)

1. 명시적 형변환

- 기본 방식

System.out.println((int)3.14);
System.out.println((double)3);
System.out.println((char)97);
//System.out.println((int)"10");  // 문자열은 위와 같은 방식으로 casting이 불가능하다.

 

결과

 

- 문자열 → int : parseInt() → Integer라는 클래스 안에 있다.

int num = Integer.parseInt("10");

 

- int → 문자열

String temp2 = Integer.toString(10);
String res1 = 10 + ""; // 10 → "10"

 

- 문자열 → double : parseDouble() → Double이라는 클래스 안에 있다.

double temp = Double.parseDouble("3.14");

 

- double → 문자열

 
String temp3 = Double.toString(10);
String res2 = 2.5 + ""; // 10 → "2.5"

 

 

2. 자동 형변환

- int 타입과 double 타입의 곱 출력하기

System.out.println(10 * 1.0);

 

결과

 

- double 타입에 int 타입 대입하기

double target = 10; // double 타입에 int 타입 값을 대입할 수 있다.

 

 

'Java' 카테고리의 다른 글

[Java] 07  (0) 2021.12.20
[Java] 06  (0) 2021.12.19
[Java] 04  (0) 2021.12.17
[Java] 03  (0) 2021.12.15
[Java] 02  (0) 2021.12.11