分支语句和循环语句

分支语句和循环语句都属于控制语句,控制语句用于控制程序的执行流程,以实现程序的各种结构方式(C语言支持三种结构:顺序结构、选择结构、循环结构)

在c语言中0表示假非0表示真

分支语句 

if else语句        

单分支语句

如果表达式为真,则执行语句。

多分支语句

 悬空else

else与离其最近的未匹配的if相匹配

 多语句的情况

如果要执行多语句则要使用代码块

switch case语句(switch允许嵌套使用)

常用于多分支的情况

case相当于入口,输入几就从几号入口进去,然后程序会依次向下执行,当然这并不符合我们的要求,我们则需要break来打破,直接跳出switch语句

还有一种情况就是输入不一样的入口,得到相同的结果

 循环语句

while语句

表达式为真则执行循环语句,然后继续判断表达式的真假,如果为假则跳出循环

关于getchar问题的了解

看一串代码

 编译器并没有报错,但是输出结果并不是我们想要的

 由上图可知,我们输入的密码是123456这个123456被scanf获取走了,但其实还有一个隐性的字符存在就是空格('\n')这个字符被getchar获取走了,所以程序才会直接输出。

那么怎么避免这种情况出现呢?首先我们需要了解输入缓冲区这个知识点

输入缓冲区:就是我们在键盘上输入的字符都会存放到输入缓冲区中,scanf和getchar会获取输入缓冲区里面里面的字符。(scanf和getchar都是输入函数,scanf只能获取空格前面的字符。

我们可以在写一个getchar输入函数(这个getchar并不执行),让它把里面的空格给获取走,那么剩下的那个就可以自由的输入了。代码如下

 还有一种情况就是scanf已经获取了它所需要的字符,但是后面还有许多字符,我们是不是要写许多个getchar把输入缓冲区清空。并不是这样的。我们只需要把getchar写如while循环中。

代码如下

 

for语句

for(表达式1; 表达式2; 表达式3)
      循环语句;
表达式1是初始化,表达式2是判断部分,表达式3是调整。

 上图是for循环语句的执行流程。

不可在for循环体内修改循环变量,防止for循环失去控制

  建议for语句的循环控制变量的取值采用“前闭后开区间”写法

 for循环变种

 

do ... while语句

do
循环语句;
while(表达式);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值