分支和循环语句(1)

C语言是【结构化的】程序设计。包括顺序结构,选择结构,循环结构。

选择结构有if switch

循环结构有while    for     do while

什么是语句呢?语句分为1,表达式的语句;2,函数调用语句;3,控制语句;4,复合语句;5,空语句。

后面介绍的是控制语句:用于程序的执行流程,以实现程序的各种结构方式由特点的语句定义字符组成,C语言有9种控制语句。

可分为三类:

1分支语句(条件判断语句):if语句,switch语句。

2循环语句:do while语句,while语句,for语句。

3转向语句:goto语句,return语句,break语句,continue语句。

一,分支语句,

1,if语句

语法结构1:

if (表达式)

语句;

else

语句;

语法结构2:

if(表达式)

语句;

else if(表达式)

语句;

else

语句;

举例

注意不能写成(18<=a<30)只能写成(a>=18 && a<30)

if(表达式)    和     else if(表达式)后面的语句只是默认一个语句,如果为多个语句建议带上{}将多个语句括起来。{}代表代码块。

 

在C语言中:0表示假   非0表示真  (-1也是真 1也是真)

表达式的结果为真则执行语句

注意

两个结果都为不输出else总是与最近的if结合

但是结果为输出haha

要合理运用{}使结构更清晰

还要有好的代码风格

代码1和代码2都为一样的结果但是代码1容易让别人产生歧义应该用代码2的风格。

还有就是函数中返回的问题

如图中的返回的应该是1,不会返回零。在函数中当返回的第一个数以后他就结束了。如果后面还有也作废了。

 2,switch语句

switch语句也一种分支语句,常常用于多分支。

语法结构:

switch(整型表达式)//如果给一个浮点型表达式不行  只能使整型int a

{                                       //只包含一个case语句时可以不用{},默认为一个

case 整型常量表达式://写成1也可以写成1+1也是整型常量表达式。

语句

}111

例如:

switch决定入口break决定出口

switch语句无法正真实现分支 加入break(跳出)才可以真正实现分支  但是也是按需加

这里前面几个case并没有加break(跳出)

如果没有输入的case后面的整型表达式,匹配失败的时候,这个时候就要用到default

default   也可以不加  程序也可以走。  与位置无关  也可以放在第一行  习惯放在最后面  但是在第一行一定要加break

二,循环语句

1,while语句

语法结构:

while(表达式)

循环语句;

例如:

while语句中可以加入 if 跳出循环

也可以加入continue:这里的continue是直接跳过本次循环continue后面的语句就不执行了,再从开始的while语句向下执行

这里的执行到i=5时if开始起作用 continue开始再从while开始执行,这样就是一个死循环。

break就是跳出循环,永久的终止循环。

continue是用于终止本次循环,也就是本次循环中continue后面的代码不会再执行,而是直接跳转到while语句的判断部分。进行下一次循环的入口判断。

拓展:

getchar():从键盘中读取一个字符,返回值是整型。读取正常的时候返回的是读取的那个字符的ascll值,但是遇到读取错误或者遇见文件结束标志会返回一个EOF。EOF(文件结束标识)是一个-1,

 

 

putchar();是打印一个字符

 在while语句中getchar

可以按ctrl+z结束  ctrl+z可以让getchar返回EOF使他停下来(有时候按一下不行,这是编译器存在bug。本质上是可以停下来的。scanf也是如此)

getchar加上while可以清理缓冲区的字符

 scanf读完缓冲区还有个‘\n’   遇见getchar被getchar直接读入  输出“确认失败”

加上while((getchar()) !=‘\n’)或者

int a;

while((a=getchar())!=‘\n’)

用来清理缓存区  被getchar吃掉了,读取一个消失一个。

这个代码的作用是只打印数字字符:

 

 

 2,for循环

语法结构:

for(表达式1; 表达式2; 表达式3)

        循环语句;

表达式1:初始化部分

表达式2:条件判断部分

表达式3:调整部分

建议不要在for循环体内调整变量:i++不要放置在for{}内

执行的时候就是第一步i=1(初始化)

第二步i<10(判断)

第三步printf("%d",i);(执行语句)

第四步i++(调整)

这是for语句执行逻辑:也可以加入break 和 continue  。

for循环形式优于while,所以for循环用的最多其次是while循环 ,其次是do while循环。

for循环的变种:

也不要随便省略。会带来问题。

 多个变量中间加逗号,

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小峰同学&&&

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值