第3讲:分支和循环易错点

一、分支语句的易错点

1、在C语言中,0为假,非0表示真

2、if(i=2)和if(i==2)的系列解释

int i=5;

if(i=5) ==》 if(5);//相当于直接是肯定了,而且i的值会变成5!

if(i=0) ==》 if(0);//相当于直接是否定了,而且i的值会变成0!

if(i==5) ==》 if(1);

if(i==2) ==》 if(0);

3、if、elseif、else,这些是只能走一条路的,只能选其一!但是并列的if是逐个判断的!

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

(1)b = a > 5 ? 3 : -3;

是这样的意思:

if (a > 5)

b = 3;

else

b = -3;

(2)c = a > b ? a : b;

是这样的意思:实现找两个数中较大值。

5、闰年

(1)闰年判断的规则:

  1. 能被4整除并且不能被100整除是闰年
  2. 能被400整除是闰年

(2)代码

if((year%4==0 && year%100!=0) || (year%400==0))

6、短路

(1)“||”左侧为真,右侧短路

(2)“&&”左侧为假,右侧短路

(3)没被短路的语句会真的执行造成变量数值的印象,但是被短路的语句是真的不会执行也不会造成变量数值的变化的

经典例题:

(1)分析:

a++,a先使用后++,a是0,会短路&&右侧,所以该语句结束,a再++,因此结果为:i=0,a=1,b=2,c=3,d=4

(2)分析:

a++,a先使用后++,a是0,不会短路,a变为1,继续,++b,b先++在使用,b变成3,会短路“||”右侧,因此语句不运行了,结果为:i=1,a=1,b=3,c=3,d=4

7、switch

(1)switch 后的expression 必须是整型表达式,也要有“{}”

(2)case 后的值,必须是整形常量表达式,别忘记“:”

二、循环语句易错点

1、在for中,break直接跳出,但是continue会执行for的C语句(for(A,B,C))

2、n位数要拆开每个数字:“/10”要(n-1)次,“%10”要n次

3、goto语句

用法:

goto next;

next:

尽量少用!

三、随机数

#include 

srand((unsigned int)time(NULL));

//随机值是从a到b

int a = a + rand() % (b - a + 1);

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值