首页 > 编程 > C++ > 正文

C++中for语句的使用技巧

2020-05-23 14:28:16
字体:
来源:转载
供稿:网友
我们知道在for语句括号内的语句一共有三条,分别是循环前准备、循环继续的条件和每次循环后参数变化。那么这三条内容是不是必需的呢?如果缺少某一句的话,for语句还能否正常运行呢?

首先要了解,如果省略了某句语句,分号仍然是不能省略的。这里的分号起着分割的作用,如果省略了分号,那么电脑将无法判断到底是省略了哪句语句。

情况一:省略循环前准备
我们以程序5.1.1为例,在保证运行结果不变的情况下,可以做这样的修改:
#include "iostream.h"
int main()
{
   int sum=0;
   int i=1;//创建循环控制变量,并赋初值为1
   for (;i<=100;i=i+1)
   {
      sum=sum+i;
   }
   cout <<sum <<endl;
   return 0;
}
实际上,我们并不是没有做准备工作,而是早就把准备工作在for语句之前就做好了。因此for括号内的准备工作就可以省略了。

情况二:省略循环继续的条件
事实上,循环继续的条件也是能够被省略的,但是却不推荐那样做。因为这将使得程序的可读性变差(即不容易让自己或别人看懂),程序的运行变得混乱。如果循环继续的条件被省略,那么for语句就会认为循环始终继续,直到用其他方式将for语句的循环打断。至于如何打断for循环我们将在下一节作介绍。

情况三:省略每次循环后的参数变化
我们知道,循环后的参数变化是等到每次循环结束以后才发生的。因此,我们把参数变化放在语句块的最后即可。如下是省略了参数变化的程序5.1.1:
#include "iostream.h"
int main()
{
   int sum=0;
   for (int i=1;i<=100;)//省略参数变化
   {
      sum=sum+i;
      i++;//在语句块最后补上参数的变化
   }
   cout <<sum <<endl;
   return 0;
}
虽然省略for语句中的成分是允许的,但是在实际使用过程中这种方法却显得比较鸡肋。所以建议不要随意地将for语句的成分省略掉,以免给理解程序带来麻烦。

试试看:
1、试输出以下图形:
********
********
********
2、改写程序5.1.1,要求只改写for语句括号内一处,使其输出1+3+5……+99的结果。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表