C语言中分支语句和循环语句

一、if语句

if ( ),括号里面 0 为假,非 0 为真。

注意:if 和 else 后面默认只能跟一条语句,如果需要跟多条语句需要放到代码块里面,即放到一个大括号里面,作为初学者尽管后面只是跟一条语句也建议尽量加上 { } ,这样也可以提升代码的易读性;

if 语句可以嵌套使用;

注:else 总是和最接近的 if 相匹配,不要看对齐来判断!如下图,很多初学者以为会输出“haha”,但是实际上什么都没有输出,因为else是跟着if (b == 2)的。

二、switch语句

switch(exp) {case value1: statement1; break; case value1: statement1; break; default: statement; break;}

注:exp位置必须是整型表达式,打括号里面case后面的value只能是整型常量表达式,字符也可以,因为字符本质是以ascii码值的形式储存的;每一句后面的break一定不要忘记!否则会顺序输出入口case后面所有语句。

如果所有case都无法匹配,走default,尽量不要让程序没有反馈;

如果多个case value: 都是一个statement,只需要在最后一个case后面写上 statement 就好:

还有,switch 语句中 case 与 default 没有顺序,但是 default 一般放在后面;嵌套 switch 语句中的 break 只能跳一层,看是在哪个打括号里面。

三、while语句

while ( ) { }:语法与 if 语句类似,循环变量初始化、判断、调整三个部分是控制循环非常重要的三个环节,但是while语句里面对这三个部分比较分散。

四、for语句

针对while语句的缺点设计出来的,for (exp1 ; exp2 ; exp3),exp1:初始化,exp2:判断,exp3:调整,注意for循环的初始化部分只被执行以此,但是如果有for循环的嵌套,内层for循环会随着外层for循环每一次都会初始化。

注:关于 for(int i = 1; i <= 10; i++) 与 for(int i = 1; i <= 10; ++i) 的区别,++i仅在C++语言的自定义类型上效率更高,其余情况下完全一样。

for循环将控制循环最重要的三个部分集中放到一起,便于对一个循环的观察和调控。

五、do-while语句

do {语句} while (表达式);

特点:循环体至少执行一次,使用的机会较少一些。但是在某些地方,对循环体必须执行一次的场合可以使用。

六、关系、条件、逻辑操作符

1、关系操作符(6个)

==、!=、>、>=、<、<=,关系表达式若为真,返回值为1;若为假,返回值为0;

注:多个操作符不能连用,需要使用逻辑操作符做连接!

2、条件操作符(三目操作符)

exp1 ? exp2 : exp3:如果 exp1 表达式值为真,执行表达式2,否则执行表达式3

在某些情况下简化了 if 语句,但是注意不要写的太复杂。

3、逻辑操作符

! (逻辑取反):改变单个表达式真假,将 非0 --> 0,0 --> 1;可以使用 if ( !flag )这样的形式来简化某些代码;

&&(逻辑与):“全真才真,一假即假”;可以类比串联,只要有一个断路灯就不亮了;

||(逻辑或):“全假才假,一真即真”;可以类比并联,只要还有一条通路,灯就还会亮;

注:短路——如果左边表达式满足逻辑运算符条件,就不再对右边表达式求值。可以看见下面两图,同时也不要忘记后置++是先赋值,后+1;我们看到a = 0的时候,只执行了a++这一个表达式就结束了,这是因为 “一假即假” 无须在进行判断就能判断整个逻辑表达式的值为假,也就不执行了。逻辑或的短路与逻辑与是类似的,这里就不详述了,供读者思考。

七、break、continue 和 goto

break:永久种植循环;如下面在判断质数时使用break可以很好的减少循环次数;

continue:跳过本次循环continue后面的代码,直接去判断部分,看是否进行下一次判断;使用时注意调整循环变量的变化,不要导致循环体死循环了,如下面的代码;

goto:常用于跳出多层循环,比break更加快捷,如下面的情况。但是如果使用不当,会导致在函数内部随意乱跳转,打乱程序的执行流程,建议能不用尽量不去使用。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值