hello呀!小伙伴们,今天小刘同学要带着大家学习的内容是—— 分支语句和循环语句!!!
分支语句和循环语句是我们学习C语言必不可少的基础知识,同样的,我们在编写代码时常常会遇到选择或是重复多次进行某段代码的情况,这个时候就到我们分支语句和循环语句出场的时候了!!!
那么,下面就跟着小刘同学来学习一下分支语句和循环语句的相关知识吧~
当然,如果大家觉得小刘同学的讲解不错的话,可以点一波关注哦~
分支语句和循环语句
分支语句
-
if
-
switch
循环语句
-
while
-
for
-
do while
goto语句
什么是语句?
C语句可以分为五类:
1.表达式语句
2.函数调用语句
3.
控制语句
4.复合语句
5.空语句
控制语句用于控制程序的执行流程,以实现程序的各种结构方式,它们由特定的语句定义符组成,C语言中一共有
九种控制语句。
这九种控制语句可以分为三类:
1.
条件判断语句(分支语句):if语句,switch语句
2.
循环执行语句:do while 语句,while语句,for语句
3.
转向语句:break语句,goto语句,continue语句,return语句。
分支语句(选择结构)
if语句
1.
语法结构:表达式为真则执行下面的语句,若表达式为假则不执行下面的语句。
2.在C语言中,
0为假,非0为真。
3.当if后面只跟了一条语句时,可以不加
{}。但是,按照习惯而言,通常会加上
{}。
4.多分支的情况
在多分支的情况下,只能也只会执行一条语句。——>if,else if ,else 都是规定只能控制一条语句。
如果条件成立,要同时执行多条语句,应使用代码块{}将这多条语句括在里面。
一对{}就是一个代码块。
5
.else的匹配:else是和离它最近的if匹配的。if和else要一一相匹配。
6
.要注意代码风格
(1)变量的命名(有意义,规范,
注意可阅读性)
(2)空格,空行和换行
(3)
高质量C++/C规范
7
.if语句书写形式的对比
注意代码块{}的使用,使得代码的可读性更强,逻辑更加清晰。
代码的好坏是不能拿长度来衡量的。
if(num==5)可以写成if(5==num)
但是,若写成if(num=5)的话,系统是不会报错的,写成if(5=num)时才会报错。
switch语句——>不能表示范围
1.switch语句常常用于
多分支的情况
2
.switch的语句结构
:switch语句允许嵌套使用。
根据
整型表达式(可以是整型变量)的值进行下面语句项的匹配, switch语句后一定有大括号,大括号里面括的是语句项。
语句项指的是一些case表达式:
整形常量(整形常量和字符)
3
.switch语句如何工作
switch语句先根据整形表达式来决定从哪个case语句进去,但是
case只是决定了入口,并没有告诉编译器要从哪个地方出去,所以要加上专门的跳转语句——>break——>如果执行完这个case语句,并且不想再让它继续往下走就在case语句后加上break。
break——>终止,跳转。——>使用break来跳出switch语句。
switch语句中的break只能跳出自己所在的switch语句而不能跳出整个程序。
4.
default子句
所有case不能匹配的情况下,使用default。
每个switch语句只能出现一条default语句。它可以出现在语句列表里面的任何位置,而且,语句流会像执行一个case语句一样执行default语句。
循环语句
while语句
1.while语句执行的流程:
2.while语句的语法结构:
while(表达式)
循环语句;
3.while语句中的break和continue
(1)break在while循环中的作用:
其实在循环中只要遇到break,就停止后期的所有的循环,直接终止循环——>while中的break是用于
永久终止循环的。
(2)continue在while循环中的作用:
continue是用于
终止本次循环的,也就是说本次循环中continue后边的代码不会再执行,而是直接跳转到while语句判断的部分,进行下一次循环的入口判断。
补充内容:
关于getchar:
getchar()——>获取字符——>从键盘上获取字符
putchar()——>打印字符
getchar()如果读取正常,则返回它所读到的字符,如果读取错误会返回
EOF——>#define EOF=-1——>使用int来定义getchar()的返回值更加合适。
getchar()的使用:
1.
1和2都能打印ch的值
2.
当getchar()获取字符时是从输入缓存区获得的。
(1)等待键盘输入
(2)键盘输入a+回车——>在输入缓存区放入一个'a\n'
(3)getchar()先读了一个‘a’。再读了一个’\n‘,到\n时发现.
3.
4.
for循环语句——>使用最方便也是最常使用的
1.语法结构:
for(表达式1;表达式2;表达式3)
循环语句;
循环语句为一条可以不加大括号,若循环语句为多条要加上大括号。
2.
for语句的循环流程
3.
break和continue在for循环中的作用——>与在while循环中的作用相似。
break只能结束一个循环。多层嵌套需要多个break。
4.
for语句的循环控制变量
建议:(1)不可在for
循环体内修改循环变量,防止for循环失去控制。
(2)建议for语句的循环控制变量的取值采用
”前闭后开区间“写法。——>增加代码可读性。
5.
一些for循环的变种
for( ;;)
for循环中的初始化部分,判断部分,调整部分是可以省略的。
如果for循环的判断部分省略则意味着这个判断会恒成立。
int i = 0;
int j = 0;
//如果省略掉初始化部分,这里打印多少个hehe?
for(; i<10; i++)
{
for(; j<10; j++)
{
printf("hehe\n");
}
}
//代码4-使用多个变量控制循环
int x, y;
for (x = 0, y = 0; x<2 && y<5; ++x,y++)
{
printf("hehe\n");
}
return 0;
}
//C99语法才支持这种写法
for(int i=0 ; i<10;i++)
{
printf("hehe\n");
}
do...while()循环
1
.do语句的语法
:
do
循环语句;
while(表达式);
2.
执行流程
3.
do while语句的特点:
循环无论条件是否成立都要执行一次,也就是说,循环至少执行一次。——>使用的场景有限,不是经常使用。
4.
do while循环中的break和continue
和if语句用法一样。
goto语句
goto语句的执行会打乱程序正常流程的执行,也就是说,很有可能会出现bug,因此要尽量不用或者减少使用goto语句,在没有goto语句的情况下,我们也可以很容易的写出我们所需要的代码。
有一个跳转功能:
again;
......
goto again;——>跳转回again——>可以自行定义,跳转标签
goto语句
不能跨函数来跳转,只能在同一个函数内部进行跳转。
goto语句在终止程序在
某些深度嵌套结构中非常适用。
创作不易,请大家多多支持!!!如有不懂的内容或者是小刘同学出错的内容,可以私信小刘同学哟~