我想知道是否可以在C ++中的for循环中动态增加。例如,我有以下代码:
for (int x = 0; x < maxX-1; x ++){
for (int y = 0; y < maxY-1; y ++){
for (int z = 0; z < maxZ-1; z++){
cout << "z = " << z << endl;
}
}
}
打印出来
z = 0
z = 1
z = 2
...
但是,如果我要将循环更改为:
amount = 2;
for (int x = 0; x < maxX-1; x ++){
for (int y = 0; y < maxY-1; y ++){
for (int z = 0; z < maxZ-amount; z+= amount){
cout << "z = " << z << endl;
}
}
}
然后我得到一个无限循环的
z = 0
z = 0
z = 0
z = 0
不可能这样做吗?
答案 0 :(得分:2)
这是完全可能的。更有可能的是你有一个整数溢出/下溢错误。
答案 1 :(得分:0)
我没有看到上述代码无效的原因。正如Rhuidean所说,z循环可能是迭代的,也取决于maxX,maxY和maxZ的值。
答案 2 :(得分:0)
完全可能。
您提交的代码不会创建无限循环。
#include <iostream>
int main () {
int amount = 2;
int maxX = 4;
int maxY = 5;
int maxZ = 12;
for (int x = 0; x < maxX-1; x ++){
for (int y = 0; y < maxY-1; y ++){
for (int z = 0; z < maxZ-amount; z+= amount){
cout << "z = " << z << endl;
}
}
}
}
答案 3 :(得分:0)
你可以,但由于代码很难遵循,你正在创建一个维护问题。
我认为你应该重新考虑你的策略。