您好我已经在线获取了一些来自android示例项目的java代码,并且在代码中有一个For语句/循环。此For语句的参数显示为(;;)而不是(int i = 0; i< string; i ++)。任何人都可以通过将参数设置为(;;)来准确解释这个循环的作用吗?我尝试过网上研究但找不到东西! 感谢
for (;;) {
len = mSerial.read(rbuf);
rbuf[len] = 0;
if (len > 0) {
//do something
}
}
答案 0 :(得分:7)
for (;;)
是无限循环,因为没有退出条件。
For循环语法
for(initialization; Boolean_expression; update)
{
//body
}
初始化,Boolean_expression,update,body:所有这些都是可选的。 for循环一直执行到Boolean_expression,直到它不为false。如果缺少Boolean_expression,则for循环永远不会终止。
答案 1 :(得分:4)
没有初始化,没有退出条件,没有增量..这是一个无限循环?
答案 2 :(得分: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;
}
}
或者你可以完全省略所有这些并进行无限循环。
答案 3 :(得分:1)
当if条件满足时,它是一个无限循环。如果您正在等待来自用户的输入,那么它可以被使用,直到它循环。
答案 4 :(得分:1)
当你为(;;)声明for循环时。每次循环都会检查条件,它总是返回true,因此它进入无限循环。它类似于而(true) .if你想打破循环然后你需要添加break语句然后它将从无限循环中出来。