为什么这段代码不能打印出真棒
#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 ++编译器
答案 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"
(无限循环)。