我正在做一个涉及整数和浮点数的程序。假设我想在x={1,1/2,2,3,4}
计算并想要使用 for-loop 。但我知道增量的条件
for(x=1;x<=4;x++)
为x++=x+1
。
我想在x={1,2,3,4}
和x={1/2}
处找到迭代。但我不知道如何修改 for-loop 语句;要么增加0.5或1.但如果我设置0.5,我会得到5/2和7/2的答案。
答案 0 :(得分:1)
这应该有效:
for (int i=1; i<=4; i++) {
for (float j=i; j<=std::max(1.6, i); j+=0.5) {
cout << j << endl;
}
}
上面的代码将打印所需的序列。
答案 1 :(得分:0)
如果0.5
是您的数字列表中唯一的异常,那么可以使用以下内容完成:
for (float x = 1; x < 5; x += (x < 2 ? .5f : 1))
std::cout << x << std::endl;
这应该 - 如果我没有犯任何错误 - 打印以下内容:
1 1.5 2 3 4
但是,这很难阅读,根据您的情况,它可能会变得更加复杂。这不仅使代码难以阅读,而且还增加了开销并可能减慢处理速度。因此,您应该 - 根据您的价值观 - 真正考虑shekhar的解决方案。
不是在x
的最后部分修改for()
,而是在循环内部进行,以使其更具可读性:
for (float x = 1; x < 5;) {
std::cout << x << std::endl;
if (x < 2)
x += .5f;
else
++x;
}