今天要讲的是c语言中的分支和循环语句_for循环语句
目录:
一.for循环语句的型式
二.break和continue在for循环语句的作用
三.for循环的变种
四.练习
下面让我们正式学习c语言中的分支和循环语句_for循环语句
一.for循环语句的型式
第三天我们学习了while循环语句,while循环语句含有重要的三个组成部分,下面让我们就举例说明
#include <stdio.h>
int main()
{
int a=0;
while(a<=10)
{
printf("%d",a);
a++;
}
return 0;
}
如上图所示,int a=0 是属于while循环的初始化部分;a<=10 是属于while循环的判断部分;a++ 是属于while循环的调整部分,这三部分是while循环的必不可少的部分。同理for循环也拥有这三样必不可少的部分。
下面让我们讲解for循环中的初始化,判断,调试。如图(图片来自于网络)
这张图片是描述for循环的具体流程,如图所示expr1是for循环的初始化部分,expr2是for循环的判断部分 ,expr3是for循环的调试部分。只有进行完判断部分才能进入循环,循环结束后然后再进入调试部分,这一点非常重要,在后面for循环学习中会用到很多!
所以下面就是for循环的型式
for(初始化;判断;调式)
{
语句;
}
其中初始化的作用是:用于初始化循环变量;判断的作用是用于判断循环什么时候终止;调试的作用是:用于循环条件的调整。
二.break和continue在for循环语句的作用
第三天我们学习了break和continue在while循环中的作用,其实break和continue在for循环中的作用基本上有很大的相似,但在实际情况下有很大区别,例如这两个初始化,判断,调试一模一样的while循环语句和for循环语句:
#include <stdio.h>
int main()
{
int a;
int b=0;
for(a=0;a<=10;a++)
{
if(5==a)
continue;
printf("%d",a);
}
while(b<=10)
{
if(5==b)
continue;
printf("%d",b);
b++;
}
return 0;
}
其中在continue的作用下,这个for循环语句会输出0,1,2,3,4,6,7,8,9,10,而这个while循环语句却输出0,1,2,3,4。导致这个的主要原因就是两者的循环流程不一样,从而break和continue在各语句中发挥的作用不一样。这就是break和continue在for和while循环发挥的作用的不同。
三.for循环的变种
1. 有时候for循环中的初始化,判断和调试过程可以省略,写成如下格式:
for(;;)
for(;a<=10;a++)
在这种格式下如果判断条件没有被规定的话那么这个循环将会循环无数次
这种格式看似简便,实则也有弊端,例如:
#include <stdio.h>
int main()
{
int a=1;
int b=1;
for(;a<=3;a++)
{
for(;b<=3;b++)
{
printf("%d",b);
}
}
return 0;
}
在上面那个代码中,假如作者想进行九次循环,但是这个代码实则只能进行三次循环,这是因为在b的循环中,b只进行一次初始化,这就导致b的循环循环三次就不会在发生了,所以在我们实现for循环的时候如果没有特殊情况就不要省略循环条件。
2.有时候我们在看别人代码中我们可能会看到别人这样写for循环:
#include <stdio.h>
int main()
{
for(int a=0;a<=10;a++)
{
printf("%d",a);
}
return 0;
}
这种for循环的写法是没有问题的,但是如果你的编译器使用的c语言标准小于c99标准那么这个格式可能就会出现错误了,因为这个写法只有c99及以上标准的编译器才能够正确使用(c99标准见我第一天学习知识)
3.在c语言中我们可以用多个控制变量来控制循环,例如:
for(int a=9,int b=0;a>1 && b>1;a--,b++)
在这个代码中a和b是for循环中的控制变量,它们一起控制这个for循环
四.练习
请问这个循环会循环几次:
答案:0(因为:k=0是赋值,0为假,没达到判断条件,所以不执行)
明天我们学习c语言中的分支和循环语句_do~while循环语句(上)