我正在尝试将此嵌套for循环转换为嵌套while循环:
该计划:
#include<iostream>
using namespace std;
void main()
{
int i,j,n,stars=1;
cout<<"Enter the number of rows:";
cin>>n;
for(i=1;i<=n;i++)
{
for(j=1;j<=stars;j++)
cout<<"*";
cout<<"\n";
stars=stars+1;
}
}
尝试嵌套while循环时,循环不会停止,有人可以给我解决方案吗?
#include<iostream>
using namespace std;
void main()
{
int n,i,j,k,stars=1;
cout<<"Enter the number of rows";
cin>>n;
i=1;
while(i<=n)
{
j=1;
while(j<=stars)
{
cout<<"*";
cout<<"\n";
stars=stars+1;
}
j=j+1;
}
i=i+1;
}
答案 0 :(得分:2)
您必须在循环中修改控件变量i
ans j
。你之后直接做了它。除此之外,变量stars
在外for
循环中递增。在secend代码段中,您在内部while
循环中执行了此操作。像这样调整你的代码:
#include<iostream>
int main()
{
int n;
std::cout<<"Enter the number of rows";
std::cin>>n;
int stars=1;
int i=1;
while ( i<=n ) // corresponds to for(i=1;i<=n;i++) { .... }
{
int j=1;
while ( j<=stars ) // corresponds to for(j=1;j<=stars;j++) cout<<"*";
{
std::cout<<"*";
j++; // increment control variable inside of the loop
}
std::cout<<"\n";
stars++;
i++; // increment control variable inside of the loop
}
return 0;
}
请注意,如果您改进了代码的格式,您就会轻易发现此类错误。