[英]Why is my Scanner asking for an input twice?
我正在為要創建的程序編寫代碼,而我希望代碼的這一部分要做的就是要求用戶輸入數字。
import java.util.Scanner;
public class DiceRoller {
System.out.println("Please input a number of you choice");
Scanner x = new Scanner(System.in);
double repeats = x.nextInt();
if(x.hasNextInt()){
repeats = (int)Math.round(repeats);
}
}
所以這要求我輸入一個數字,但是我將不得不輸入兩次。
它還僅將第一個輸入用作變量
獲得nextInt()
,您詢問它是否具有另一個具有hasNextInt()
輸入,只有輸入更多內容,它才知道這一點。
也許您打算將nextInt()放在if
塊內。 也許您還想使用int repeats
作為其int
值。
您正在調用x.hasNextInt()
,並且掃描程序等待另一個輸入來檢查它是否為int。 您還正在讀取一個int並將其分配給double(一個int不是)。 然后,將int / double混合傳遞給Math.round,將其轉換為Long,然后將其轉換為int並嘗試將其分配為double。
如果要檢查行是否為整數,則應嘗試以下操作:
System.out.println("Please enter an integer.");
String line = x.nextLine();
int res=0;
try{
res=Integer.parseInt(line);
}catch(Exception e){
System.out.println("Not a number");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.