这只是一个逻辑问题,我试图搜索这个,但我一无所获。这可能是胡说八道,但我想更好地理解为什么这不起作用。
如果我喜欢这样:
int start = 5;
int times = (start >= 5) ? 10 : 15;
for (int i = 0; i < times; ++i)
{
std::cout << "Times: " << i << std::endl;
}
有效。
但是,当我尝试这样做时,不会:
int start = 3;
for (int i = 0; i < ((start >= 5) ? 10 : 15); ++i)
{
std::cout << "Times: " << i << std::endl;
}
有什么不同以及为什么这不起作用? - 正如我所说,不要评判我,这可能是胡说八道,但我不知道会发生什么。
你可以让它发挥作用,还是我的案例有另一种更好的结构?
提前谢谢。
答案 0 :(得分:2)
您的第二个版本在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