如果(三元)在for语句中

时间:2014-04-17 17:29:49

标签: 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 = 3;

for (int i = 0; i < ((start >= 5) ? 10 : 15); ++i)
{
    std::cout << "Times: " << i << std::endl;
}

有什么不同以及为什么这不起作用? - 正如我所说,不要评判我,这可能是胡说八道,但我不知道会发生什么。

你可以让它发挥作用,还是我的案例有另一种更好的结构?

提前谢谢。

1 个答案:

答案 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