for (int i = 0; i < 6; i++) {
lineOne[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"");
if (lineOne[i] > 47 || lineOne[i] < 1)//Number also have to be inside these parameters
JOptionPane.showMessageDialog(null, "Please try again!!!");
lineOne[i] = Integer.parseInt(JOptionPane.showInputDialog(null, ""));
}
}
回答
問題出在你的if語句上。如果輸入值超出1-47範圍,則代碼被寫入的方式,您再次要求該值。但是,如果再給出一個「不正確的」值,則將其保存在數組中並返回for循環的頂部。
試試這個。
for (int i = 0; i < 6; i++) {
lineOne[i] = Integer.parseInt(JOptionPane.showInputDialog(null,"");
while (lineOne[i] > 47 || lineOne[i] < 1) { //Number also have to be inside these parameters
JOptionPane.showMessageDialog(null, "Please try again!!!");
lineOne[i] = Integer.parseInt(JOptionPane.showInputDialog(null, ""));
}
}
你的代碼無法正常工作。您仍然可以輸入重複值 – XtremeBaumer
非常感謝。 – colOnTheBall
boolean b = true;
int[] lineOne = new int[6];
for (int i = 0; i < 6; i++) {
b = true;
int k = Integer.parseInt(JOptionPane.showInputDialog(null, ""));
for (int j : lineOne) {
if (k == j) {
System.out.println("error");
b = false;
break;
}
}
if (b && k < 47 && k > 1) {
lineOne[i] = k;
} else {
JOptionPane.showInputDialog(null, "Duplicate value or value out of bounds.");
i--;
}
}
這是我能想到的最好的辦法。布爾值確定該值是否已經存在
謝謝我使用了類似的東西,它完美的作品 – colOnTheBall
而不是使用數組使用Set。
實施例:
Set<Integer> numbers=new HashSet<>();
號碼然後加入到集合中。它不會允許重複。
- 1. 如何防止在php會話數組中輸入重複值?
- 2. 如何阻止用戶輸入重複值
- 3. 如何阻止重複插入
- 4. Oracle阻止重複插入
- 5. 如何在Java中阻止輸入?
- 6. 如何防止重複的用戶輸入數組?
- 7. 阻止空值輸入數據庫
- 8. 如何防止在數據庫中輸入重複記錄?
- 9. 如何阻止鍵盤輸入在VB.net
- 10. 如何防止重複輸入?
- 11. 如何阻止陣列中的重複輸出?
- 12. 阻止重複XNA
- 13. 通過加入語句阻止mysql組中的重複內容
- 14. 如何避免在字符串數組中重複輸入?
- 15. 如何查找重複/重複數組值並將其顯示在輸出中?
- 16. 如何在輸入類型數字中阻止+, - ,e?
- 17. AHK阻止輸入
- 18. SQL防止重複輸入
- 19. 如何阻止重複的行?
- 20. 防止重複值在ORACLE中插入
- 21. PHP/simpleXML - 防止將重複的XML值插入到數組中
- 22. 如何停止輸入每個字符的重複輸入?
- 23. 如何在註冊活動中防止重複輸入
- 24. 在Wicket中阻止重複請求
- 25. 如何獲取重複輸入的值
- 26. 如何阻止在輸入文本中寫入?
- 27. 阻止按鈕後所需值輸入
- 28. 如何停止在UITextField中輸入值
- 29. 停止在數據庫中重複輸入數據
- 30. 防止數組選擇重複值
看來你忘了在你的問題中包含一個問題。 – Biffen
在這個問題中存在一個嚴重缺乏'問題'的問題 – ItamarG3
因此,在存儲之前檢查一個值是否已經存在。 – azurefrog