首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java无界循环

Java无界循环
EN

Stack Overflow用户
提问于 2017-02-22 15:10:46
回答 5查看 1.5K关注 0票数 2

无限循环:它的身体重复的次数是未知的。例如重复,直到用户键入"q“退出为止。

这是对无界for循环的解释。我不明白,有人能给我举个例子吗?提前感谢

EN

回答 5

Stack Overflow用户

发布于 2017-02-22 15:23:13

for循环中,您可以设置计数器,并且当它到达循环结束条件时,例如for (int i = 0; i < 10; i++)。如果您需要无界循环(当您不知道您需要多少次迭代,但您有一些条件来完成它),您可以设置以下条件:

代码语言:javascript
复制
for ( ; ; ) {
   if (condition == true) exit from loop;
} 

或者使用while循环,我认为这对无界更好。

票数 1
EN

Stack Overflow用户

发布于 2017-02-22 15:17:51

有界循环是具有已知迭代计数的循环,如下所示:

代码语言:javascript
复制
for(int i=0;i<10;i++){

}

正如您所看到的,您得到了保证(除非发生一些类似Exceptionbreak语句的事情),将有10个迭代。

一个无界循环没有边界,您不能事先知道有多少迭代,例如:

代码语言:javascript
复制
boolean exit = false;

while(!exit){

 // set exit to true to stop looping
}

或者像@Fildor中的示例一样,使用无结束条件的for循环。注意,这个循环是无限的,直到像上面所说的那样,出现一个break语句或一些异常(这个循环类似于while(true) ):

代码语言:javascript
复制
for(;;)
票数 0
EN

Stack Overflow用户

发布于 2017-02-22 15:18:08

下面的代码正是您发布的定义所描述的。这只是意味着,当程序员键入代码时,不知道while循环的运行时间。

代码语言:javascript
复制
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();
        }
    }
}

代码来自:这里

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42395259

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档