JAVA 코딩 System.in 표준 입력 스트림, Scanner 스캐너
Stream.in
: 표쥰 입력 스트림(객체)
.read() : buffer안에서 데이터를 1byte씩 읽어 오는 메소드
e.g)
import java.io.IOException;
public class Test01 {
public static void main(String[] args) throws IOException {
System.out.print("정수 입력 : ");
int su = 0;
while(true) {
int a = System.in.read();
if(a == 13) {
break;
}
su *= 10;
su += (a-48);
// System.out.println(a);
}
buffer(버퍼)
: 데이터의 처리속도, 단위, 시간 등이 서로 다른 두 장치나 프로그램 사이에서
데이터를 주고받기 위한 용도로 사용되는 임시 기억장치(메모리)
* 키보드 입력 시 버퍼
키보드에서 입력된 키값들을 버퍼 안에 저장
공백문자를 기준으로 데이터의 끝을 구분
System.in을 사용할 시에는 불편하기 때문에
편리하게 사용하기 위해 만들어진 도구를 가져다 사용 -> scanner
Scanner sc = new Scanner(System.in);
java.util.scanner : 데이터를 읽어 오기 위한 클래스
파일, String(문자열), URL, InputStream
자료형 데이터로 참조형 변수를 만든 것
.next() : 다음 공백문자까지의 데이터를 읽어오는 메소드 ; 한 단어 ; String(문자열)으로 읽어오게 되어 있다
.nextLine() : 엔터(\r, \n)를 기준으로 데이터를 읽어오는 메소드 ; 한 줄 ; String
.next자료형() : (공백문자까지) 내가 원하는 데이터 형태로 데이터를 읽어오는 메소드 ; 한 단어 ; next자료형()을 next()의 방식으로 [자료형] 형태로 읽어옴
* 자바에서 메소드명은 첫 글자는 소문자로, 달라지는 단어의 첫글자는 대문자로
e.g)
System.out.print("나이 입력 : ");
int age = sc.nextInt();
System.out.println("나이 : " + age);
sc.nextLine(); // 공백삭제
데이터를 입력한 후에 nextLine을 사용한다면
버퍼의 엔터값을 제거해주어야 공백 입력이 가능해진다
System.out.println("이름 입력 : ");
String name = sc.nextLine();
System.out.println("이름 : " + name);
Exercise 1
사용자에게 입력을 받아 출력화면이 아래와 같이 되도록 작성하시오
자바 시험 점수 입력하세요
95
파이썬 시험 점수 입력하세요
80
이름을 입력하세요
홍길동
================================
홍길동님의 성적 합계 = 175점, 평균 = 87.5점
import java.lang.*;
import java.util.Scanner;
public class Test01 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in); // 스캐너 활용
System.out.println("자바 시험 점수 입력하세요");
int java = sc.nextInt();
System.out.println("파이썬 시험 점수 입력하세요");
int python = sc.nextInt();
sc.nextLine(); // 공백삭제
System.out.println("이름을 입력하세요");
String name = sc.nextLine();
System.out.println("======================================");
System.out.print(name + "님의 성적");
int sum = java + python; // 호출
System.out.print("합계 = " + sum + "점, "); // 호출
System.out.print("평균 = " + sum/2.0 + "점"); // 호출
출력화면
