Java 나이, 이름 입력 받아 출력하기
나이와 이름을 입력하면 받은 나이와 이름을 출력하는 프로그램
- "이름을 입력하세요." 출력하고 사용자가 입력한다.
- "나이를 입력하세요." 출력하고 사용자가 입력한다.
- 입력이 완료되면 "안녕하세요? {이름} 과 {나이} 로 사용자 등록완료하였습니다." 출력한다.
Java 코드
public class Scanner4 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("이름을 입력해주세요. ");
String name = scanner.nextLine();
System.out.print("나이를 입력해주세요. ");
int age = scanner.nextInt();
System.out.println("안녕하세요? " + name + " 과" + age + " 사용자 등록완료하였습니다.");
}
}
입력
hello
19
출력
이름을 입력해주세요. hello
나이를 입력해주세요. 19
안녕하세요? hello 과19 사용자 등록완료하였습니다.
추가 요구 개발. 나이, 이름 입력 받고 출력하기 (반복)
나이와 이름을 입력하면 받은 나이와 이름을 출력하는 프로그램
입출력 완료 후 종료가 아닌 다른 사용자의 이름과 나이를 반복하여 입출력한다.
- "이름을 입력하세요." 출력하고 사용자가 입력한다.
- "나이를 입력하세요." 출력하고 사용자가 입력한다.
- 입력이 완료되면 "안녕하세요? {이름} 과 {나이} 로 사용자 등록완료하였습니다." 출력한다.
- 출력 후 "이름을 입력하세요." 단계로 반복한다.
- "이름을 입력하세요." 단계에서 "exit" 입력 받은 경우 종료한다.
입력
홍길동
19
exit
출력
이름을 입력해주세요. (exit 입력시 종료) 홍길동
나이를 입력해주세요. 19
19세 홍길동님 환영합니다
이름을 입력해주세요. (exit 입력시 종료) exit
프로그램을 종료합니다.
Java 코드
public class Scanner7 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("이름을 입력해주세요. (exit 입력시 종료) ");
String name;
name = scanner.nextLine();
if (name.equals("exit")) {
System.out.println("프로그램을 종료합니다.");
break;
}
System.out.print("나이를 입력해주세요. ");
int age;
age = scanner.nextInt();
scanner.nextLine();
System.out.println(age + "세 " + name + "님 환영합니다");
}
}
}
- nextInt는 숫자만 출력하고 scanner 이 "\n" 제외해주지 않고 있다. 그럼 두 번째 사용자 입력 못하는 현상이 발생되니 age = scanner.nextInt() 아래의 scanner.nextLine()을 추가하여 "\n" 넘어가는 용도로 사용해야 한다.
- 13줄의 두 번째 "이름을 입력해주세요. " 입력 시 scanner의 멤버 변수 position은 숫자까지 반환하고 남은 "\n" 문자열을 가리키게 된다.
- 이름 입력 부분 13줄의 nextLine은 "\n" 문자열을 가리키게 되고 사용자 입력을 무시하고 바로 나이를 물어
이름을 입력해주세요. (exit 입력시 종료) 나이를 입력해주세요.
출력하게 된다. - 해당 현상을 없애는 방법은 25줄
nextLine()
다시 사용하여 "\n" 문자열 다음으로 이동한다.