循环中的循环和增量保持在0的C++中
我在代码中的while循环中有2个while循环:循环中的循环和增量保持在0的C++中,c++,loops,while-loop,increment,C++,Loops,While Loop,Increment,我在代码中的while循环中有2个while循环: #include <iostream> using namespace std; int main(int argc, char *argv[]) { int p = 0; int p2 = 0; int p3 = 0; while(p < 10) { while(p2 < 10) { while(p3 < 10)
#include <iostream>
using namespace std;
int main(int argc, char *argv[]) {
int p = 0;
int p2 = 0;
int p3 = 0;
while(p < 10)
{
while(p2 < 10)
{
while(p3 < 10)
{
cout << p << endl;
cout << p2 << endl;
cout << p3 << endl;
cout << endl << endl;
p3++;
}
p2++;
}
p++;
}
}
就好像p++和p2++都不工作了,只有p3的一个循环。这是我在我的项目中的简化代码,它的结果正是我的问题所在。我所期望的是,对于每一个p2,p3会从0持续到9,对于每一个p,p3会从0持续到9。所以最终结果应该是p=9,p2=9,p3=9。我已经主演了一段时间了,只是不明白。看起来很简单,应该踢,但它不是
谢谢你的帮助 p3达到10后,内循环中的条件不再满足;p2也是如此。当p3等于10时,它将永远不会重新进入while p3<10循环,因为一旦将其增加到10,它将永远不会小于10,也永远不会重新进入该循环。是的,p和p2是递增的,但它们永远不会被打印出来,因为p3==10在那个时间点。您没有在每个内部循环的开始处重置迭代器:
哦,天哪。你有没有想过代码的逻辑?你有没有意识到,一旦p2和p3变量的循环执行完毕,你就没有重置它们?omg刚刚意识到出了什么问题。对不起,伙计们,我想我只是太累了,不再直接思考了。谢谢你的帮助!虽然这个问题可能很简单,但对于初学者来说并不是那么糟糕。他发布了完整的代码、实际输出和预期输出。因此,+1来自我。对于初学者来说,即使是一个简单的逻辑错误,这也是相当不错的。
0
0
0
0
0
1
0
0
2
0
0
3
0
0
4
0
0
5
0
0
6
0
0
7
0
0
8
0
0
9
{
int p = 0;
int p2 = 0;
int p3 = 0;
while (p < 10) {
// p2 NOT reset here! - just move "int p2 = 0;" here.
while (p2 < 10) {
// p3 NOT reset here! - just move "int p3 = 0;" here.
while (p3 < 10) {
// ...
p3++;
}
p2++;
}
p++;
}
}