1

您好,我已经从在线的 android 示例项目中获取了一些 java 代码,并且在代码中有一个 For 语句/循环。此 For 语句的参数显示为 (;;) 而不是 (int i = 0; i < string; i++)。谁能通过将参数设置为 (;;) 来准确解释这个循环在做什么?我已经尝试在网上搜索,但找不到任何东西!谢谢

for (;;) {

                len = mSerial.read(rbuf);
                rbuf[len] = 0;


                if (len > 0) {
                       //do something
   }
   }
4

5 回答 5

7
for (;;)

是一个无限循环,因为没有退出条件。

For 循环语法

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

初始化、布尔表达式、更新、正文:它们都是可选的。for 循环一直执行直到 Boolean_expression 不为假。如果缺少 Boolean_expression,则 for 循环将永远不会终止。

于 2013-11-05T10:25:01.490 回答
4

没有初始化,没有退出条件,没有增量..这是一个无限循环?

于 2013-11-05T10:25:27.153 回答
2

这是一个无限循环。一个 for 循环有 4 个部分

for (initialisation; condition; increment/decrement) {
  loop body
}

您可以选择省略任何这些部分(尽管一些编译器可能会抱怨缺少循环体,而其他编译器会为了性能而省略整个循环)。

您可能已经初始化了一个变量,并且可以跳过循环内的初始化,这是完全可行的:

int i = 0;

for ( ; i < 10; i++ ) {
    // do something
} 

您也可以选择省略增量,并在其他地方执行(注意将其包含在循环中,否则可能会无意中导致无限循环):

for ( int i = 0; i < 10; ) {
    // do something
    i++;
} 

也可以省略条件并将其包括在其他地方:

for ( int i = 0; ; i++ ) {
    // do something

    if (i == 9) {
      break;
    }
} 

或者您可以完全省略所有这些并进行无限循环。

于 2013-11-05T10:29:38.663 回答
1

当你为 (;;) 声明 for 循环时。每次循环都会检查条件,它会返回 true,因此它进入无限循环。它类似于while(true)。如果你想打破循环,那么你需要添加break语句然后它将从无限循环中出来。

于 2013-11-05T10:48:00.070 回答
1

这是一个无限循环,当满足 if 条件时执行某些操作。如果您正在等待用户的输入,则可以使用它,直到它永远循环。

于 2013-11-05T10:30:26.217 回答