c语言中如何将for循环转换为while循环?
How do i convert for loop to while loop in c language?
#include<stdio.h>
int main(){
int i,j,rows;
printf("Input number of rows : ");
scanf("%d",&rows);
for (i=1;i<=rows;i++) {
for (j=1;j<=i;j++)
printf ("%d",i);
printf ("\n');
}
return 0;
}
我是 c 编程的新手,谁能帮忙把这个 for 循环转换成 while 循环?谢谢
任何for循环为:
for (e1; e2; e3) {
*block*
}
严格等价于(仅当块中没有 continue
时):
e1;
while (e2) {
*block*
e3;
}
如果e2为空,那么在翻译时可以用1
代替。
所以你有这个循环:
for (i=1;i<=rows;i++)
{
for (j=1;j<=i;j++)
printf ("%d",i);
printf ("\n');
}
此循环保持 运行 直到 1:i 达到 i <= 行和 2:j<=i。
要把for循环改成while循环,只需要用一个等价的表达式就可以了。您可以在第一个循环中尝试这种方式:
i=1;
while(i<=rows)
{
[...]
i++;
}
您只需在循环之前手动设置并在循环结束之前增加计数器变量。对于第一个循环内的循环,你只需做同样的事情:
i=1
while(i<=rows)
{
j=1
while(j<=i)
{
[...]
j++;
}
i++
}
#include<stdio.h>
int main(){
int i,j,rows;
printf("Input number of rows : ");
scanf("%d",&rows);
for (i=1;i<=rows;i++) {
for (j=1;j<=i;j++)
printf ("%d",i);
printf ("\n');
}
return 0;
}
我是 c 编程的新手,谁能帮忙把这个 for 循环转换成 while 循环?谢谢
任何for循环为:
for (e1; e2; e3) {
*block*
}
严格等价于(仅当块中没有 continue
时):
e1;
while (e2) {
*block*
e3;
}
如果e2为空,那么在翻译时可以用1
代替。
所以你有这个循环:
for (i=1;i<=rows;i++)
{
for (j=1;j<=i;j++)
printf ("%d",i);
printf ("\n');
}
此循环保持 运行 直到 1:i 达到 i <= 行和 2:j<=i。 要把for循环改成while循环,只需要用一个等价的表达式就可以了。您可以在第一个循环中尝试这种方式:
i=1;
while(i<=rows)
{
[...]
i++;
}
您只需在循环之前手动设置并在循环结束之前增加计数器变量。对于第一个循环内的循环,你只需做同样的事情:
i=1
while(i<=rows)
{
j=1
while(j<=i)
{
[...]
j++;
}
i++
}