1.if语句
1.1基本功能
if的功能是进行判断,如果判断的结果是0(假)就不执行,如果判断的是1或非零数(真)就执行
1.2else
我理解是对if进行分支
练习:输⼊⼀个年龄,>=18岁就输出:成年,否则就输出:未成年
1.3 分⽀中包含多条语句
if和else默认只包含一条语句,如果有多条必须加{}
去掉大括号我直接报错
else大括号去掉的话就直接打印错误
1.4 嵌套if
在 if else 语句中, else 可以与另⼀个 if 语句连⽤,构成多重判断
练习:要求输⼊⼀个整数,判断输⼊的整数是0,还是正数或者负数
练习: 输⼊⼀个整数,如果是正数,再判断是奇数还是偶数,并输出;如果不是正数则输出:⾮正数
我认为无限套娃其实在程序里面不过是顺序检索,充分利用if和else
练习:输⼊⼀个⼈的年龄
如果年龄<18岁,打印"少年"
如果年龄在18岁⾄44岁打印"⻘年"
如果年龄在45岁⾄59岁打印"中⽼年"
如果年龄在60岁⾄89岁打印"⽼年"
如果90岁及以上打印"⽼寿星"
这里没用到那个if(age>=18 && age<44),我觉得这里事顺序检索也满足
1.5 悬空else问题
主要是书写问题,我愿称c语言的编译为赛博书法
原来那些空格有时是为了美观,并不是强制要求
铁则:else 总是跟最接近的 if 匹配
2.关系操作符
C语⾔⽤于⽐较的表达式,称为“关系表达式”(relational expression),⾥⾯使⽤的运算符就称为“关系运算符
• > ⼤于运算符
• < ⼩于运算符
• >= ⼤于等于运算符
• <= ⼩于等于运算符
• == 相等运算符(这个容易错,所以用相等一般这样 if(6 ==x ))
• != 不相等运算符
关系表达式通常返回 0 或 1 ,表⽰真假。
C语⾔中, 0 表⽰假,所有⾮零值表⽰真。⽐如, 20 > 12 返回 1 , 12 > 20 返回 0
从这里开始我就知道为什么计算机要学数学了(已老实)
还有一点,多个关系运算符不宜连⽤
比如(a<x<c)如果a大于x,那a<x的结果就会返回为0,假如c是大于0的数,但是又不满足那个表达式,程序依旧会进行
3. 条件操作符
条件操作符也叫三⽬操作符
exp1 ? exp2 : exp3
如果 exp1 为真, exp2 计算,计算的结果是整个表达式的结果;如果
exp1 为假, exp3 计算,计算的结果是整个表达式的结果
(我简记为真近假远)
练习:使⽤条件表达式实现找两个数中较⼤值
4. 逻辑操作符:&&,||,!
• ! :逻辑取反运算符(改变单个表达式的真假)。
• && :逻辑与运算符,就是并且的意思(两侧的表达式都为真,则为真,否则为假)。
• || :逻辑或运算符,就是或者的意思(两侧⾄少有⼀个表达式为真,则为真,否则为假)。
注:C语⾔中,⾮0表⽰真,0表⽰假
4.1 逻辑取反运算符!
学到这个我觉得我就闻到到高中的味了,诶数学课本闻着味就来了
取反运算符就像下面这个
目前以上就是对这个!的理解,以后见到的场景应该会更多
4.2 逻辑与运算符
一样,先把数学书搬出来
也就是说这个符号(&&就好像打结了一样,交在一起)就像数学里面的交集,要两边同时满足才可以输出真
练习:如果我们说⽉份是3⽉到5⽉,是春天,那使⽤代码怎么体现呢?
与连续使用符号进行对比
4.3 逻辑或运算符
上图
ll就好像并集符号从中间断开了一样
练习: 我们说⼀年中⽉份是12⽉或者1⽉或者2⽉是冬天,那么我们怎么使⽤代码体现呢?
4.4 练习:闰年的判断
输⼊⼀个年份year,判断year是否是闰年
闰年判断的规则:
1. 能被4整除并且不能被100整除是闰年
2. 能被400整除是闰年
4.5 短路
概念有点多,直接截图