无界循环:其身体重复的次数未知 预先。 •例如重复直到用户键入" q"退出。
这是无界for循环的解释。我不明白,有人可能会举个例子吗?提前致谢
答案 0 :(得分:0)
有界循环是具有已知迭代计数的循环,如:
for(int i=0;i<10;i++){
}
如您所见,您可以保证(除非发生类似某些Exception
或break
语句),将会有10次迭代。
无界循环没有界限,你无法预先知道会有多少次迭代,例如:
boolean exit = false;
while(!exit){
// set exit to true to stop looping
}
或者像来自@Fildor的示例,for
循环没有结束条件。
请注意,此循环是无限的,直到如上所述,break
语句或某些异常发生(此循环类似于while(true)
):
for(;;)
答案 1 :(得分:0)
以下代码完全符合您发布的定义所描述的内容。它只是意味着当程序员输入代码时,不知道while循环体的运行次数。
BufferedReader br = null;
try {
br = new BufferedReader(new InputStreamReader(System.in));
while (true) {
System.out.print("Enter something : ");
String input = br.readLine();
if ("q".equals(input)) {
System.out.println("Exit!");
System.exit(0);
}
System.out.println("input : " + input);
System.out.println("-----------\n");
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (br != null) {
try {
br.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
代码来自:here
答案 2 :(得分:0)
看看,在for
循环中,您可以设置计数器以及何时达到循环结束条件,例如for (int i = 0; i < 10; i++)
。
如果你需要无界循环(当你不知道需要多少次迭代,但是你有完成的条件时),你可以设置以下条件:
for ( ; ; ) {
if (condition == true) exit from loop;
}
或使用while
循环,我认为这对于无界限更好。
答案 3 :(得分:0)
未绑定循环也可能是由于逻辑错误造成的:
示例:
int i;
for(i=0;i!=i+1;++i){
//System.out.println(i);
}
System.out.println(i); // never prints
答案 4 :(得分:0)
以下是一个例子:
import java.io.IOException;
public class Class {
public static void main(String... args) throws IOException {
int count = 0;
for (char c = ' '; c != 'q'; c = (char) System.in.read()) {
System.out.println("current value of c: " + c);
System.out.println("Number of keystrokes so far: " + count++);
}
}
}