当0,1循环进入无限循环时

时间:2017-03-06 12:43:50

标签: while-loop infinite-loop

为什么这段代码不能打印出真棒

#include <iostream>
using namespace std;
int main() {
    while (1, 0) {
        cout << "awesome\n";
    }
    return 0;
}

但是这段代码会打印出令人敬畏的无限时间

#include <iostream>
using namespace std;
int main() {
    while (0, 1) {
        cout << "awesome\n";
    }
    return 0;
}

我正在使用g ++编译器

2 个答案:

答案 0 :(得分:2)

因为while循环并不关心表达式的第一部分。

#include<iostream>
   using namespace std;

int main(){
   while(0 <- ,1){cout<<"awesome\n";}
   return 0;
}

此部分将被忽略。使用-Wall编译代码。

如果忽略此部分,则第一个示例中的代码为false,而上一个示例中的代码为true。

答案 1 :(得分:1)

因为您正在使用逗号运算符(Does while loop have two Arguments?)来计算第一个操作数(在逗号之前)并返回第二个操作数。

这意味着在您的第一个循环中,您正在执行false,并且0被评估为while(1)(立即结束)。在你的第二个你做true,并且1被评估为android:translationZ="xxx dp"(无限循环)。