이번 편의 목표: Scanner로 제목과 연체 일수를 읽어 연체료를 출력합니다.
프로그램이 사람 입력을 받으려면 표준 입력을 읽어야 합니다. 자바에서는 java.util.Scanner를 사용합니다.
한 줄과 숫자
import java.util.Scanner;
public class LateFeeInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("책 제목: ");
String title = scanner.nextLine();
System.out.print("연체 일수: ");
String daysText = scanner.nextLine();
int days = Integer.parseInt(daysText.trim());
int fee = days * 100;
System.out.println(title + " 연체료는 " + fee + "원입니다.");
scanner.close();
}
}import는 다른 패키지의 클래스를 가져옵니다. Scanner는 java.util 패키지에 있습니다. nextLine은 엔터까지의 한 줄을 문자열로 읽습니다. Integer.parseInt는 그 문자열을 int로 바꿉니다. trim은 앞뒤 공백을 제거합니다.
print는 줄을 바꾸지 않고, println은 출력 후 줄을 바꿉니다. 제목이 개미이고 일수가 3이면 다음 문장이 출력됩니다.
개미 연체료는 300원입니다.
숫자가 아닌 글을 입력하면 NumberFormatException이 발생하며 프로그램이 멈춥니다. 예외를 붙잡아 다시 묻는 코드는 이번 연재의 범위를 넘습니다. 연습에서는 0 이상의 정수만 입력한다고 정합니다.
nextInt 뒤에 남는 줄바꿈
nextInt로 숫자를 읽으면 엔터에 해당하는 줄바꿈이 입력에 남을 수 있습니다. 바로 다음 nextLine이 빈 문자열을 읽는 문제가 생깁니다. 그래서 이 연재는 한 줄을 읽은 뒤 parseInt로 변환합니다. 입력 방식이 하나로 유지됩니다.
직접 해 보기
회원 이름과 대출 권수를 한 줄씩 입력받아 이름 님, 대출 권수는 2권입니다. 형식으로 출력하세요.
해설
import java.util.Scanner;
public class LoanInput {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름: ");
String name = scanner.nextLine();
System.out.print("대출 권수: ");
int count = Integer.parseInt(scanner.nextLine().trim());
System.out.println(name + " 님, 대출 권수는 " + count + "권입니다.");
scanner.close();
}
}
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.