[英]How can I make my while loop run correctly?
我的代碼應該要求用戶輸入 1 到 10 之間的數字。如果他們輸入 1 到 10 之間的數字,那么它會說謝謝並在那里結束。 如果沒有,它應該循環並說,請輸入 1 到 10 之間的數字,然后再試一次。 然后它將再次讓用戶輸入。 我的問題是,在第二次輸入后,即使他們第二次輸入不正確,它也會自動結束循環。 順便說一下,我對編碼很陌生,所以請 go 在評論中對我放輕松 XD。 哪位大佬幫忙看看,謝謝這是我的代碼:
import javax.swing.*;
public class LoopLecture {
public static void main(String[] args) {
int MIN = 1;
int MAX = 10;
String rating;
rating = JOptionPane.showInputDialog(null, "Please enter your rating of Krabbypatties on a scale of"
+ MIN + "to" + MAX + ".With" + MIN + "meaning youhated it and" + MAX + "meaning you loved it.");
int rating2 = Integer.parseInt(rating);
while (rating2 < MIN || rating2 > MAX) {
JOptionPane.showMessageDialog(null, "You must enter a value between " + MIN + "and" + MAX + ".");
JOptionPane.showMessageDialog(null, "Please try again.");
rating = JOptionPane.showInputDialog(null, "Please enter your rating of Krabbypatties on a scale of"
+ MIN + "to" + MAX + ".With" + MIN + "meaning youhated it and" + MAX + "meaning you loved it.");
if (rating2 >= MIN && rating2 <= MAX)
break;
}
JOptionPane.showMessageDialog(null, "Thank you!");
}
}
在 for 循環中嘗試將新值分配給 rating2
rating = JOptionPane.showInputDialog(null, "請輸入您對 Krabby 的評分
rating2 = JOptionPane.showInputDialog(null, "請輸入您對 Krabby 的評分
while (true) { // creates infinite while loop
break; // ends an infinite loop
}
你break;
表達式在你的 if 語句中,所以我相信你明白它是如何工作的,但試着讓循環無限,如上所示。
更好地解決它:
rating2
評級解析為rating
2NumberFormatException
,什么都不用做,忽略它public static void main(String[] args) {
int MIN = 1;
int MAX = 10;
String rating = JOptionPane.showInputDialog(null, "Please enter your rating of Krabbypatties on a scale of"
+ MIN + "to" + MAX + ".With" + MIN + "meaning youhated it and" + MAX + "meaning you loved it.");
while (true) {
try {
int rating2 = Integer.parseInt(rating);
if (rating2 >= MIN && rating2 <= MAX) {
break;
}
} catch (NumberFormatException ignored) {
}
JOptionPane.showMessageDialog(null, "You must enter a value between " + MIN + "and" + MAX + ".");
JOptionPane.showMessageDialog(null, "Please try again.");
rating = JOptionPane.showInputDialog(null, "Please enter your rating of Krabbypatties on a scale of"
+ MIN + "to" + MAX + ".With" + MIN + "meaning youhated it and" + MAX + "meaning you loved it.");
}
JOptionPane.showMessageDialog(null, "Thank you!");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.