[Java] tip: 데이터 입력받기 (Scanner 활용하기)

febCho·2023년 9월 23일
0

Java

목록 보기
4/53

※ 지난 8월 30일 자료형에 대해 배우며 더 다양한 예제 연습을 위해 데이터를 Scanner를 활용해 데이터를 입력받는 방법에 대해 배웠습니다.
문법 관련 설명은 추후 진행되었으며, 이 포스팅에서는 단편적인 정보만을 다룹니다. 이후 관련 설명이 추가될 수 있습니다.

Scanner 활용해 데이터 입력받기

1. nextInt() - 성적 프로그램 만들기

package kr.s04.operator;

public class OperatorMain05 {
	public static void main(String[] args) {
		java.util.Scanner input = new java.util.Scanner(System.in);
		
		System.out.print("국어: ");
		//입력된 정수를 변수에 대입
		int korean = input.nextInt();
		
		System.out.print("영어:");
		int english = input.nextInt();
		
		System.out.print("수학:");
		int math = input.nextInt();
		
		//총점 구하기
		int sum = korean + english + math;
		//평균 구하기
		double avg = sum / 3.0;
	
		System.out.printf("국어 = %d%n", korean);
		System.out.printf("영어 = %d%n", english);
		System.out.printf("수학 = %d%n", math);
		System.out.printf("총점 = %d%n", sum);
		System.out.printf("평균 = %.2f%n", avg);
		
		input.close();
	}
}

Scanner를 이용해 데이터를 입력받는 순서는 아래와 같다.

  1. 메인 메서드 안에 java.util.Scanner input = new java.util.Scanner(System.in)'을 명시한다. 이는 입력 시작을 뜻한다.

  2. 그리고 하단에 input.close();를 명시한다. 이는 입력 끝을 의미한다.

  3. 입력한 값을 받기 위해 변수의 자료형과 일치하는 메서드를 명시해준다.
    ex.
    System.out.print("국어: ");
    int korean = input.nextInt();
    → 국어: 98
    위와 같이 98을 입력하면,
    int korean = 98이 된다.

3-1. nextInt()는 정수만 입력받을 수 있고, 실수를 입력받고자 한다면 nextDouble()을 활용한다.

  1. 만약 평균을 구할 때 아래와 같이 명시하였다면, '95.00'이 출력될 것이다.
    double avg = sum / 3;
    올바른 값을 구하기 위해서는 둘 중 하나가 double 데이터여야 한다.
    double avg = sum / 3.0;
    → '95.67' 출력

2. nextLine()

package kr.s05.operation;

public class SwitchMain02 {
	public static void main(String[] args) {
		
		java.util.Scanner input = new java.util.Scanner(System.in);
		System.out.print("계절 입력> ");
		
		String season = input.nextLine();
		
		//JDK7.0 이상부터 인자값으로 문자열 사용 가능
		switch(season) {
		case "봄":
			System.out.println("꽃이 피는 계절");break;
		case "여름":
			System.out.println("뜨거운 태양의 계절");break;
		case "가을":
			System.out.println("산들바람이 부는 계절");break;
		case "겨울":
			System.out.println("눈이 내리는 계절");break;
		default:
			System.out.println("없는 계절");
		}
		
		input.close();
	}
}
  1. next() : 봄 여름 -> 봄만 반환(공백 불가)
    nextLine() : 봄 여름 -> 봄 여름 한 라인의 데이터 전부 반환 (공백 가능)
profile
Done is better than perfect.

0개의 댓글