* 학습목표
Scanner 클래스를 이해하고 관련 예제를 풀어본다.
고정된 정수를 연산하는 것이 아니라 사용자로부터 입력 값을 받아서 연산을 하고자 할 때 Scanner 클래스를 이용할 수 있다.
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int x;
int y;
int sum;
System.out.print("첫 번째 숫자를 입력하시오: ");
x = input.nextInt();
System.out.print("두 번째 숫자를 입력하시오: ");
y = input.nextInt();
sum = x + y;
System.out.println("합계: " + sum);
}
}
실행 결과
첫 번째 숫자를 입력하시오: 100
두 번째 숫자를 입력하시오: 300
합계: 400
1. Scanner 클래스란?
자바에서 화면으로부터 데이터를 입력받는 기능을 제공하는 클래스이다.
java.util 패키지 내에 존재하는 클래스로서 정수, 실수, 문자열과 같은 기본적인 데이터 타입 입력을 받는다.
2. Scanner 클래스 사용 방법
1) import 를 통해 외부 class를 호출한다.
자바의 큰 장점 중 하나는 다양한 기능을 가지는 클래스들을 제공한다는 것인데, 이미 만들어놓은 기능들을 불러서 사용할 수 있다. 이들 클래스들은 패키지라는 단위로 그룹핑 되어 있고 이러한 패키지를 자바 클래스 라이브러리라고 한다.
이 클래스 라이브러리를 사용하기 위해서 import 문장을 이용해 원하는 클래스를 호출해야한다.
import java.util.Scanner;
- Scanner 는 java.util 패키지 내에 존재하는 클래스이다.
import java.util.*;
- java.util 패키지 내에 존재하는 모든 클래스를 import 해도 동일한 결과를 얻을 수 있다.
2) scanner 클래스 객체 생성
scanner 클래스는 반드시 객체를 생성해야만 사용할 수 있다. 아래 문장은 변수를 선언하면서 초기화한 것인데
아래 Scanner 타입은 데이터를 읽을 수 있는 기능을 가진 클래스로서 input 이라는 이름으로 변수를 생성하고
대입연산자 = 를 통해 변수 input을 초기화하였다.
Scanner input = new Scanner(System.in);
System.in // 정수형, 실수형과 같은 값을 화면에서 입력받겠다는 의미
System.out // 화면으로 출력하는 것이다.
System.err // 화면으로 출력할 수는 있지만, 다른 파일등으로 결과가 redirection 되지 않는다.
3) Scanner 객체 사용
Scanner 에는 값을 정해진 형식으로 리턴받기 위해 nextXXX(); 형식의 여러가지 메소드method를 사용한다.
nextInt(), nextByte(), nextShort(), next(), nextLine(), nextDouble(), nextFloat(), nextBoolean() 등...
int width = input.nextInt(); // 사용자로부터 입력받은 정수를 변수 width 에 저장
위의 문장은 Scanner의 객체인 input을 이용해 사용자로부터 정수를 읽어들이는 문장이다. input 을 통해 nextInt() 라고하는 메소드를 호출하게 된다. nextInt()는 사용자로부터 정수를 입력받아 변수 width 에 대입한다.
입력받고 싶은 값에 맞는 메소드를 사용해야한다.
nextInt() -> 정수
nextDouble() -> 실수
next() -> 스페이스 즉 공백 전까지 입력받은 문자열을 리턴
nextLine() -> Enter를 치기 전까지 쓴 문자열을 모두 리턴
예제 실습
0. 사용자가 낸 돈과 상품의 가격을 정수로 입력받아 잔돈을 출력해보세요.
1. 사용자가 정수 2개를 입력하고 첫번째 수를 두번째로 나눈 몫과 나머지를 출력해보세요.
2. 사용자가 입력한 정수의 제곱을 출력해보세요.
3. 사용자가 국어, 영어, 수학점수를 입력하면 총점과 평균을 출력해보세요.
4. 사용자의 이름과 나이의 값을 받아 출력해보세요.
5. 사각형의 가로, 세로를 정수로 입력받아 둘레와 넓이를 계산하여 출력하여 보세요.
1. 클래스, 변수 이름부터 짓기
2. 데이터 타입 지정
3. 계산 로직 세우기
/*
사용자가 낸 돈과
상품의 가격을 정수로 입력받아
잔돈을 출력하는 프로그램
*/
import java.util.Scanner;
public class changes {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("받은 돈을 입력하시오 : ");
int received = input.nextInt();
System.out.print("상품 가격을 입력하시오 : ");
int price = input.nextInt();
int changes = received - price;
System.out.println("잔돈 : " + changes);
}
}
/*
1. 사용자가 정수 2개를 입력
첫번째 수를 두번째로 나눈 몫과 나머지를 출력해보세요.
*/
import java.util.Scanner;
public class Division {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("첫번째 정수를 입력하세요 : ");
int Number1 = input.nextInt();
System.out.print("두번째 정수를 입력하세요 : ");
int Number2 = input.nextInt();
int division = Number1 / Number2;
System.out.println("나눈 몫 : " + division);
int rest = Number1 % Number2;
System.out.println("나머지 : " + rest);
}
}
/*
2. 사용자가 입력한 정수의 제곱을 출력해보세요.
*/
import java.util.Scanner;
public class Squared {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("정수를 입력하시오: ");
int integer1 = input.nextInt();
System.out.print("또 다른 정수를 입력하시오: ");
int integer2 = input.nextInt();
int squared = integer1 * integer2;
System.out.println("제곱 값: " + squared);
}
}
/*
3. 사용자가 국어, 영어, 수학점수를 입력하면
총점과 평균을 출력해보세요.
*/
import java.util.*;
public class Result {
public static void main(String[] args) {
Scanner input = new 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 total = korean + english + math;
System.out.println("총점 : " + total);
int average = (korean + english + math) / 3;
System.out.println("평균 : " + average);
}
}
/*
사각형의 가로, 세로를 정수로 입력받아
둘레와 넓이를 계산하여
출력하여 보세요.
*/
// 콘솔창에서 값을 입력할 것
import java.util.Scanner;
public class Square {
public static void main(String args[]) {
// input 이라는 객체를 생성
Scanner input = new Scanner(System.in);
System.out.print("가로를 입력하시오: ");
int width = input.nextInt();
System.out.print("세로를 입력하시오: ");
int height = input.nextInt();
int area = width * height;
int peri = 2 * (width + height);
System.out.println("사각형의 넓이 : " + area);
System.out.println("사각형의 둘레 : " + peri);
}
}
Reference
power Java p.65
'BackEnd > Java' 카테고리의 다른 글
Java 프로그래밍 기초 - class, method, statement (0) | 2020.12.27 |
---|---|
실수 타입 - Double (0) | 2020.12.24 |
JDK 프로그램 설치 매뉴얼 (0) | 2020.12.22 |
[Java] 자바 출력문 - println, printf, (0) | 2020.12.17 |
[Java] Comment 주석 처리 (0) | 2020.12.16 |