C++ if(三元)在for语句中
这只是一个逻辑问题,我试着搜索,但什么也没找到。这可能是胡说八道,但我想更好地理解为什么这不起作用 如果我喜欢这个:C++ if(三元)在for语句中,c++,C++,这只是一个逻辑问题,我试着搜索,但什么也没找到。这可能是胡说八道,但我想更好地理解为什么这不起作用 如果我喜欢这个: int start = 5; int times = (start >= 5) ? 10 : 15; for (int i = 0; i < times; ++i) { std::cout << "Times: " << i << std::endl; } int start=5; 整数倍=(开始>=5)?10 : 15
int start = 5;
int times = (start >= 5) ? 10 : 15;
for (int i = 0; i < times; ++i)
{
std::cout << "Times: " << i << std::endl;
}
int start=5;
整数倍=(开始>=5)?10 : 15;
对于(int i=0;i std::cout您的第二个版本在Visual Studio中运行良好。以下是我在控制台窗口中获得的输出:
Times: 0
Times: 1
Times: 2
Times: 3
Times: 4
Times: 5
Times: 6
Times: 7
Times: 8
Times: 9
Times: 10
Times: 11
Times: 12
Times: 13
Times: 14
两个代码快照之间的start
是否有意不同?另外,如果您说某些内容“不起作用”,请始终明确-哪些内容不起作用?编译错误?错误行为?start在第二个值中采用不同的值。您不应该使用相同的值进行测试吗?另外,它如何不起作用?发生了什么?“为什么这不起作用?”--这意味着什么?你发布的代码会起作用。如果你有不起作用的东西,发布一个可编译的示例,以及实际和预期的输出。我不知道GCC的编译器开关……在Visual Studio O2中,意味着完全优化和Od禁用所有。编辑:Saw docs.O0禁用所有。
Times: 0
Times: 1
Times: 2
Times: 3
Times: 4
Times: 5
Times: 6
Times: 7
Times: 8
Times: 9
Times: 10
Times: 11
Times: 12
Times: 13
Times: 14