我希望我的程序一直问这个问题,直到得到可以使用的响应为止,尤其是0到20之间的一个数字。此类中还有很多其他内容,因此这里有一段摘录,其中do- while是(我已经命名了变量以及所有内容。
public static void main(String[] args) { do { halp = 1; System.out.println("What level is your fort?"); Scanner sc = new Scanner(System.in); try { fortLevel = Integer.parseInt(sc.nextLine()); } catch(NumberFormatException e){System.out.println("Numbers only, 0-20"); halp = 0; } if(halp < 1) { work = false; } if(halp > 1) { work = true; } while(work = false); }
您在while表达式中使用了一个赋值:
while
while(work = false);
您可以替换为
while(work == false);
或更好
while(!work);
如果变量halp和work在其他地方未使用,则可以消除它们,从而为您提供:
halp
work
do { System.out.println("What level is your fort?"); Scanner sc = new Scanner(System.in); try { fortLevel = Integer.parseInt(sc.nextLine()); } catch (NumberFormatException e) { System.out.println("Numbers only, 0-20"); } } while (fortLevel < 0 || fortLevel > 20);