程序导致无限循环,执行流程是什么?

时间:2015-05-09 07:25:16

标签: java

name

4 个答案:

答案 0 :(得分:2)

当没有提供控制循环的条件时,go循环会导致无限循环。

您可以在不修改当前代码的情况下添加break语句,如下所示:

go: for (;;) {

    fact: for (int i = 1; i < 3; i++) {
        System.out.println(i);

        if (i == 2) // put some matching condition to break go: for infinite loop
            break go;
    }

    if (true) // put some matching condition to break go: for infinite loop
        break;

}

答案 1 :(得分:0)

我相信代码是:

public static void main(String[] args) throws ParseException {
        go: for(;;){
            fact: for(int i=1;i<3;i++) {
                   System.out.println(i); 
            } 
        }
    }

它肯定是无限循环for(;;)。这个循环没有初始化,没有条件也没有递增/递减,因此它将永远运行。

答案 2 :(得分:0)

来自docs

可以按如下方式创建无限循环:

// infinite loop

for ( ; ; ) {

    // your code goes here
}

无限循环,因为没有条件停止循环。

For loop Syntax

for(initialization; Boolean_expression; update)
{
   //Statements
}
  

评估布尔表达式。如果是真的,身体的   循环执行。如果它是假的,则循环体不会   执行和控制流程跳转到for的下一个语句   循环。

答案 3 :(得分:0)

无限循环是因为这个

for ( ; ; ) {
}

您需要在for循环中提供一个条件来阻止它。

来自Java Docs

for (initialization; termination;
     increment) {
    statement(s)
}
     

使用此版本的for语句时,请记住:

     
      
  • 初始化表达式初始化循环;当循环开始时,它被执行一次。
  •   
  • 当终止表达式的计算结果为false时,循环终止。
  •   
  • 每次迭代循环后调用increment表达式;这个表达式完全可以接受   增加或减少一个值。
  •