C语言是结构化的程序设计语言
三种结构:
顺序结构
选择结构
循环结构
什么是语句?
分号隔开的
printf("hehe");
1+2;
分支语句和循环语句
分支语句/判断语句 (选择结构)
- if
- switch
循环语句 (循环结构)
- while
- for
- do while
if语句
语法结构:
1.if(表达式)
语句;
2.if(表达式)
语句1;
else
语句2;
3.//多分支
if(表达式)
语句1;
else if(表达式2)
语句2;
else
语句3
错误示范
这里执行的逻辑是,将60放入else if的表达式 16<= 60 <=18
它先判断16<=60 为真,为真就是1,16<=60这个表达式就为1
后续就变成 1<=18 ,又为真,所以它判断为青年
正确写法
悬空else
这就是else匹配的问题
else和最近的if 匹配
正确写法
switch语句
switch(整型表达式)
{
语句项
}
什么是语句项?
//是一些case语句
case 整型常量表达式:
语句;
break //跳出循环
default //所有case语句都不成立时,执行darault语句
//switch语句中表达式类型只能说整形或者枚举类型
写个程序,输入1则输出星期1,输入2则输出星期2
这里输入1,但是却输出了星期1~星期天
这里day是几,程序就从几开始走,输入为1时返回星期一,但是没人阻止它停下它就一直走下去,所有都被输出出来了
这里输入2,它就从2开始,直到输出完为止
分析之后发现没有东西提示程序在哪停下,如何跳出循环
添加break语句后,告诉程序,满足条件输出后就推出,就不会有之前的情况发生
care决定入口在哪里,break决定出口在哪里
不是每个语句都必须break退出,根据实际情况
输入1~5打印 工作日
输入6~7打印 休息日
所以要根据需求来判断break在哪跳出循环
default子句
这里输入9 ,没有任何输出,没有反馈,就好像输入密码,正确就进去了,错误就没反应,缺点什么,需要有点反馈
这里加上default后来点反馈
default就是switch语句里所有的case都不成立时要执行的语句
m=3 n=2
m=4 n=3