簡體   English   中英

為什么我的掃描儀要求兩次輸入?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM