Java无界for循环
无界循环:在该循环中,其主体重复的次数未知 预付款e、 g.重复此操作,直到用户键入“q”退出Java无界for循环,java,loops,for-loop,Java,Loops,For Loop,无界循环:在该循环中,其主体重复的次数未知 预付款e、 g.重复此操作,直到用户键入“q”退出 这是对无界for循环的解释。我不明白,有人能给我举个例子吗?提前感谢有界循环是具有已知迭代计数的循环,如: for(int i=0;i<10;i++){ } 或者像@Fildor中的例子,一个不带结束条件的for循环。 请注意,此循环是无限的,直到如上所述,出现break语句或某些异常(此循环类似于while(true)): 下面的代码与您发布的定义完全相同。这仅仅意味着当程序员键入代码时,
这是对无界for循环的解释。我不明白,有人能给我举个例子吗?提前感谢有界循环是具有已知迭代计数的循环,如:
for(int i=0;i<10;i++){
}
或者像@Fildor中的例子,一个不带结束条件的for
循环。
请注意,此循环是无限的,直到如上所述,出现break
语句或某些异常(此循环类似于while(true)
):
下面的代码与您发布的定义完全相同。这仅仅意味着当程序员键入代码时,不知道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();
}
}
}
代码来源:看,在
for
循环中,您可以设置计数器以及当计数器达到循环结束条件时,例如for(int i=0;i<10;i++)
。
如果需要无界循环(当您不知道需要多少次迭代,但有一些条件可以完成时),可以设置以下条件:
for ( ; ; ) {
if (condition == true) exit from loop;
}
或者使用
而循环,我认为这对无界循环更好。无界循环也可能是由于逻辑错误:
例如:
int i;
for(i=0;i!=i+1;++i){
//System.out.println(i);
}
System.out.println(i); // never prints
以下是一个例子:
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++);
}
}
}
(;;)的代码>=不执行任何操作的循环的无界值。或者使用(;;)if(((char)System.in.read())==“q”)break的示例代码>有界循环可以执行预先未知的多次,例如for(int i=0,m=new Random().nextInt(10);i。这是一个计算机科学问题:如果你想知道为什么有人关心循环是否有界,那么最好从道格拉斯·霍夫斯塔特发明的“BlooP”和“FlooP”编程语言开始。我不是一个会看字节码的人。但事实上,我想如果使用带break on条件的(;;)或while,它将被优化为相同的字节码。至少我希望如此。
int i;
for(i=0;i!=i+1;++i){
//System.out.println(i);
}
System.out.println(i); // never prints
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++);
}
}
}