尽管我知道我缺少了一些东西,但似乎无法使我的头脑变得简单。
while (true){
if (n < 0)
System.out.print("less than 0")
else if (n > 35)
System.out.print("greater than 35")
else
calc(n)
}
我正在尝试使用while loop
来循环代码并要求输入,直到用户输入的值大于0且小于35,我尝试使用“继续”但无济于事,在此先感谢enter image description here
我已经添加了完整代码的sc,在代码底部请求输入后,while循环将进入
答案 0 :(得分:0)
好吧,您不是在“寻求输入”。而且while循环永远不会退出。您可能至少要在某个地方休息一下。
答案 1 :(得分:0)
我认为您缺少用户输入:
Scanner in = new Scanner(System.in);
int n = 0;
while (n != 27){ /*Can be any number here instead of 27, even -1*/
n = in.nextInt();
if (n < 0)
System.out.print("less than 0")
else if (n > 35)
System.out.print("greater than 35")
else
calc(n)
}
我也建议您不要使用 while(true) ,因为您将遇到无限循环,您可以改用以下条件: while (n!= 27)
因此,每次输入27都会结束循环。
答案 2 :(得分:0)
我也不确定该calc方法,但也许您可以使用类似的方法?
Boolean checked = true;
While(checked) {
if (n < 0) {
System.out.print("less than 0");
}
else if (n > 35) {
System.out.print("greater than 35")'
}
else {
calc(n)
checked = false;
}
}
希望有帮助。干杯
答案 3 :(得分:0)
您在代码中遗漏了两件事。
1)在while
循环中,没有机制来更新变量n
的值。也就是说,如果在外部循环中,n的值设置为2,则循环将继续打印Greater than 35
。因此需要一种机制来更新其值
2)while
循环的中断机制。因为条件为while(true)
,并且循环内没有break
,所以循环将无限地继续。因此,需要一种循环中断机制
下面是一个示例代码,其中使用Scanner
从控制台获取输入,而break
用于中断循环条件
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = 0;
while (true) {
n = scan.nextInt();
if (n < 0)
System.out.print("less than 0");
else if (n > 35)
System.out.print("greater than 35");
else {
calc(n);
break;
}
}
scan.close();
}
答案 4 :(得分:0)
怎么样:
Scanner in = new Scanner(System.in);
int n = 0;
while (true){
n = in.nextInt();
if (n < 0)
System.out.print("less than 0");
else if (n > 35)
System.out.print("greater than 35");
else{
calc(n);
break;
}
}
答案 5 :(得分:0)
// if using jdk 1.7 or above else close scanner in finally block.
try (Scanner s = new Scanner(System.in)) {
int n;
while (true) {
n = s.nextInt();
if (n < 0) {
// ask for value greater then 0
System.out.print("Please enter a value greater then 0 ");
// extra print statement so input will be printed on next line after message
System.out.println();
} else if (n > 35) {
// ask for value less then 35
System.out.print("Please enter a value less then 35");
System.out.println();
} else {
// process input and break if correct input has received
calc(n);
break;
}
}
}
答案 6 :(得分:-1)
您可以在一段时间内使用do。像这样:
do {
calc(n);
} while(n < 0 || n > 35)
期望calc(n)函数读取用户输入值并将其放入n变量中。