我正在嘗試學習“if else”語句,但在腳本的中間“if else”部分遇到了問題。package practice;import java.util.Scanner;public class Practice {public static void main(String[] args) { // TODO Auto-generated method stub Scanner in = new Scanner(System.in); System.out.println("enter a number between 1 and 10 "); if (!in.hasNextDouble()) { String word = in.next(); System.err.println(word + " is not a number"); } else if (!(in.nextDouble() > 0) || !(in.nextDouble() <= 10)) { Double wrongnumber = in.nextDouble(); System.err.println(wrongnumber + " is not between 1 and 10"); } else { System.out.println("It works!"); } return; } }沒有錯誤,但在 'else if' 塊中,我無法打印錯誤“..... 不在 1 和 10 之間”,無論我是否在 1 和 10 之間或更大的范圍內輸入數(shù)字。它也不會打印“它有效!” 當我添加'else if'塊時不再行。任何建議將不勝感激。
3 回答

DIEA
TA貢獻1820條經(jīng)驗 獲得超2個贊
你打in.hasNextDouble()
了幾次電話。每次它都會從輸入中掃描新號碼,因此可能會導致您的問題。您還應該考慮如何編寫條件。我知道您可以嘗試一下那里發(fā)生的事情,但這種情況很難閱讀。您可以使用
(number <= 1) || (number > 10)
(通過反轉運算符刪除否定)例如。

慕萊塢森
TA貢獻1810條經(jīng)驗 獲得超4個贊
else if (!(in.nextDouble() > 0) || !(in.nextDouble() <= 10)) { Double wrongnumber = in.nextDouble();
我不確定,但在這里你操作 3 個不同的數(shù)字。在條件之前,將其寫入變量。
不要將 int 與 double 進行比較
添加回答
舉報
0/150
提交
取消