【问题标题】:Change For Loop into While Loop将 For 循环更改为 While 循环
【发布时间】:2020-05-02 02:05:50
【问题描述】:

我是编程新手,我需要将此代码切换到 while 循环中。

#include <stdio.h>
void main()
{
   int i,n,sum=0;

   printf("Input number of terms : ");
   scanf("%d",&n);
   printf("\nThe odd numbers are :");
   for(i=1;i<=n;i++)
   {
     printf("%d ",2*i-1);
     sum+=2*i-1;
   }
   printf("\nThe Sum of odd Natural Number upto %d terms : %d \n",n,sum);
}

问题是用C编写一个程序来显示奇数自然数的n项及其和

【问题讨论】:

标签: c for-loop while-loop


【解决方案1】:

循环继续条件独立,而初始化和递增分别在循环之前和循环内完成。

#include <stdio.h>
void main() 
{
   int i,n,sum=0;

   printf("Input number of terms : ");
   scanf("%d",&n);
   printf("\nThe odd numbers are :");
   i = sum;
   while(i<=n)
   {
     printf("%d ",2*i-1);
     sum+=2*i-1;
     i++;
   }
   printf("\nThe Sum of odd Natural Number upto %d terms : %d.   
   \n",n,sum);
}

如果您知道第一次迭代总是会发生,您可以使用“do while”循环;循环继续条件在执行后进行评估。

do {
    ...
} while(i <= n);

【讨论】:

    【解决方案2】:

    for 循环由 4 个部分组成:

    for ( initial_expression; loop_condition; update_expression )
    {
        //body
    }
    
    • initial_expression 在进入循环时执行一次。

    • 进入循环时检查loop_condition,每次迭代后检查

    • update_expression 每次迭代都会执行。 (不在循环的第一个入口处)

    • 每次迭代都会执行主体。

    while 循环由两部分组成:

    while ( loop_condition )
    {
        //body
    }
    

    为了使您的 while 循环与您的 for 循环一样,您需要自己添加其他两个部分。

    initial_statement;
    while ( loop_condition )
    {
        //body
        update_expression;
    }
    

    这与之前的 for 循环相同。我建议您查看whilefor 循环的流程图,以更好地了解工作流程。

    【讨论】:

      【解决方案3】:
      while (i++<=n) {
        /* whatever */
      }
      

      会做好的

      【讨论】:

        猜你喜欢
        • 2018-08-13
        • 2017-09-26
        • 1970-01-01
        • 2014-03-15
        • 2020-09-17
        • 1970-01-01
        • 2022-01-19
        • 2014-04-05
        • 2021-11-23
        相关资源
        最近更新 更多