🔔 사용자로부터 이름과 나이를 반복해서 입력받고, 입력받은 이름과 나이를 출력하는 프로그램을 작성하세요.
이름을 입력하세요 ("종료"를 입력하면 종료) : 자바
나이를 입력하세요 : 30
입력한 이름 : 자바, 나이 : 30
이름을 입력하세요 ("종료"를 입력하면 종료) : 하니
나이를 입력하세요 : 20
입력한 이름 : 하니, 나이 : 20
이름을 입력하세요 ("종료"를 입력하면 종료) : 종료
프로그램을 종료합니다.
package scanner.ex;
import java.util.Scanner;
public class ScannerWhileEx1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.print("이름을 입력하세요 (\"종료\"를 입력하면 종료) : ");
String name = scanner.nextLine();
if (name.equals("종료")) {
System.out.println("프로그램을 종료합니다.");
break;
}
System.out.print("나이를 입력하세요 : ");
int age = scanner.nextInt();
scanner.nextLine(); // 숫자 입력 후 줄바꿈 처리
System.out.println("입력한 이름 : " + name + ", 나이 : " + age);
}
}
}
nextInt()
: 이 메서드는 숫자만 가져간다. 근데 이 코드에서 사용자가 나이를 입력하면 30
+ \n
까지 입력된다. 그래서 다음 nextLine()
에서 남아있는 \n
를 빈 문자열(””
)로 바꿔서 들어가게 된다. 따라서 nextInt()
후, nextLine()
을 줘서 남아있는 입력이 없게 해야한다.🔔 사용자로부터 상품의 가격(price)과 수량(quantity)을 입력받고, 총 비용을 출력하는 프로그램을 작성하세요.
상품의 가격을 입력하세요 (-1을 입력하면 종료) : 1000
구매하려는 수량을 입력하세요 : 3
총 비용 : 3000
상품의 가격을 입력하세요 (-1을 입력하면 종료) : 2000
구매하려는 수량을 입력하세요 : 4
총 비용 : 8000
상품의 가격을 입력하세요 (-1을 입력하면 종료) : -1
프로그램을 종료합니다.
package scanner.ex;
import java.util.Scanner;
public class ScannerWhileEx2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
while (true) {
System.out.print("상품의 가격을 입력하세요 (-1을 입력하면 종료) : ");
int price = input.nextInt();
if (price == -1) {
System.out.print("프로그램을 종료합니다.");
break;
}
System.out.print("구매하려는 수량을 입력하세요 : ");
int quantity = input.nextInt();
int totalPrice = price * quantity;
System.out.println("총 비용 : " + totalPrice);
}
}
}