私はユーザからの数字だけを受け付ける方法を理解しようとしていますが、try catchブロックを使用して試行しましたが、それでもエラーが発生します。Javaはスキャナからユーザの番号のみを受け取ります
Scanner scan = new Scanner(System.in);
boolean bidding;
int startbid;
int bid;
bidding = true;
System.out.println("Alright folks, who wants this unit?" +
"\nHow much. How much. How much money where?");
startbid = scan.nextInt();
try{
while(bidding){
System.out.println("$" + startbid + "! Whose going to bid higher?");
startbid =+ scan.nextInt();
}
}catch(NumberFormatException nfe){
System.out.println("Please enter a bid");
}
なぜ動作していないのか理解しようとしています。
コンソールにaを入力してテストしましたが、希望の「入札を入力してください」の代わりにエラーが表示されます。
Exception in thread "main" java.util.InputMismatchException
at java.util.Scanner.throwFor(Scanner.java:909)
at java.util.Scanner.next(Scanner.java:1530)
at java.util.Scanner.nextInt(Scanner.java:2160)
at java.util.Scanner.nextInt(Scanner.java:2119)
at Auction.test.main(test.java:25)
ありがとう!私はnextLine()とparseInt()を使うことを覚えています。 – Streak324