如果beta组件的索引是3的倍数,则尝试输出该组件的值。 我在for循环中设置了条件,但它仅在索引0处打印组件。在for循环条件中不可以吗?我真的需要在循环内使用if语句吗?
谢谢。
double beta[20] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 };
cout << fixed << showpoint << setprecision(2);
for (int index = 0; index < 20 && index % 3 == 0; index++)
cout << beta[index] << endl;
答案 0 :(得分:2)
条件为假时,循环将停止。对于index == 1
,条件为假。
如果您想要一个跳过迭代的循环,请在循环主体中使用if
。
但是对于这种简单情况,最好在每次迭代中将index
增加3。
答案 1 :(得分:1)
循环的条件是:index < 20 && index % 3 == 0
此条件在index = 1
为假,因此循环停止。
为此,请将条件分为两部分。如果for
放一个,在if
中放一个。以下是代码:
double beta[20] = { 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20 };
cout << fixed << showpoint << setprecision(2);
for (int index = 0; index < 20 ; index++){ // First condition
if (index % 3 == 0){ // Second condition
cout << beta[index] << endl;
}
}
希望有帮助!
答案 2 :(得分:1)
如果您尝试计算1 mod 3
,它将等于 1 ,因为第二个条件将为false,因此程序仅在index = 0
时才执行主体({{1 }})从1开始之后,您将永远不会输入for循环主体。希望有帮助。
答案 3 :(得分:0)
这个简短的答案在for循环条件下做什么?
for (int index = 0; ((index % 3) == 0 || (index++ && index++)) && index < 20 ; index++)
cout << beta[index] << endl;
别忘了我们将index < 20
放在条件的末尾。