我们知道在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语句的成分省略掉,以免给理解程序带来麻烦。