【发布时间】:2015-03-11 23:46:18
【问题描述】:
我的任务是制作一个使用 while 循环从 9 到 16 输入的阶乘计算器。条件是,如果用户输入的输入不是 9 到 16 或 int,它应该从头开始循环并再次请求输入。
我的代码如下所示:
Scanner myScanner;
int x = 1;
int factorial=1;
int input;
myScanner = new Scanner(System.in);
System.out.println("put in an int and i will show you its factorial");
while (true) {
input = myScanner.nextInt();
if (input<9 || input >16) {
System.out.println("please enter a valid int");
}
else{
break;
}
}
for (int i=input; i >0; i--) {
factorial *= i;
}
问题在于,这并没有真正使用 while 循环返回到代码的开头。我真的只是输入了一个多余的语句来使它成为一个while循环。
所以我想我的问题是,如果输入了错误的输入,我该如何创建一个返回循环开头的 while 循环?
【问题讨论】:
-
当你输入一个无效的 int 时,这个 not 以什么方式回到循环的开头?您真正想要改变的行为是什么?
-
嗯,我觉得我实际上并没有使用while循环来循环,只是为了把它放在那里而输入它。如果输入错误,我真正想要的是循环回到程序的开头,例如:'9.8'“请输入有效输入”“汽车”请输入有效输入“9”362880
-
你看过我下面的回答了吗?它可以满足您的需求。
标签: java loops while-loop