终端执行第一个循环,忽略另一个循环



我在通过终端执行程序时遇到问题。我的程序编译时没有错误,但执行for循环,而忽略while循环部分。我检查了它是否执行while循环部分,是的,它成功执行,没有任何错误(注意:为了检查它是否执行程序while循环中的第二个循环,我将第一个循环,即循环块改为注释。(

#include<iostream>
using namespace std;
int main()
{
unsigned long int p[]={1212121212,3232323232,0404040404};
char name[5][10]; int j=0;
for(int i=0;i<5,j<5;i++,j++)
{ cout<<"n Enter the Name:";
cin>>name[i];
}
while(j<3)
{ 
cout<<"n The Number:"<<p[j];
j++;
}
return 0;
}

你能解释一下这里发生了什么事吗?我该怎么解决。请忽略拼写错误的单词。

看看这一行:

for(int i=0;i<5,j<5;i++,j++)

您正在递增j,直到它等于5,即使您没有在for循环中使用它。

for循环结束时,j == 5意味着它大于3,因此while中的代码永远不会执行——循环的条件永远不会满足。

您可能想从for循环中删除对j的任何使用,或者如果有更多代码并且您需要它,请记住在for循环结束后将其重置为0。

最新更新