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++
 }