C语言-3、选择结构

选择结构(神奇的"短路"现象)
学习本章的口诀:早配对、早控制、标语句
(1)、def:从main()开始,由上到下有些语句执行有些语句不执行
(2)、两类语句->执行语句:控制语句

1、两类表达式
(1)关系运算符及关系表达式(结果是逻辑值:0或者1)
< 、<= 、>、 >= 、==(比较运算符)、 !=
运算符三要素:功能+优先级+结合性
5>4>3 结果:0
1<2<3 结果:1

(2)逻辑运算符与逻辑表达式(结果是0假或者1真)
&&(逻辑与)------全真为1,有0则0
||(逻辑或)------全0为0,有真为1
!(逻辑非)(单目)------面目全非(真变假,假变真)

2、if语句:
if就近控制一条语句
(1)
if(表达式)
    语句序列1;
后继语句(必执行)
 
(2)if的数量多余else的数量是可以的
if(表达式)
    语句序列1;
else
    语句序列2;  
后继语句(必执行)

(3)if-else嵌套
早配对用else找if
如何找?
①从程序从上到下找else给它配对
②在else上面的离它最近的且未和其他else配对的if

3、switch语句(做菜单)

switch(表达式){
case 常量表达式1(常量整型或字符型):子句1
case 常量表达式2(不能有变量和逗号运算符):子句2
case 常量表达式3(不能出现相同的值):子句3
..............
case 常量表达式n:子句n
default       子句n+1
}
break的作用

#include<stdio.h>
int main(){
	char grade;
	scanf("%c",&grade);
	switch(grade){
		case 'a': printf("good\n");
		case 'b': printf("better\n");
		default: printf("bad\n");
	}
	return 0;	
}


执行过程:程序进入switch语句,会计算switch里面的表达式的值,如合法则找对应的常量表达式进行匹配,输出相应子句,
下面的子句都将被无条件的执行包括default后面的子句,全部执行完,才将退出switch语句
tag:如果都不匹配才会找default(即使说default放在程序的第一句,如果放在第一句且switch匹配失败,执行完default语句后面的子句都将
被无条件执行),相应的default后面的子句都将会被执行
Note:
1、"="是赋值运算符,"=="是比较运算符。
2、6级:< 、<= 、>、 >= (从左到右的方向)
3、7级:==( 比较运算符)、 !=(从左到右的方向)
4、11级:&&(逻辑与)->遇0发生"短路"
5、12级:||(逻辑或)->遇1发生"短路"
6、2级:!(逻辑非)(单目)

7、做题套路:
①检查合法性
②查看是否存在"短路"
③优先级,同级使用结合性
8、每个else一定要先找if;if就近控制一条语句;if-else语句整个算一条语句;复合语句{  }算一条语句

9、如果else发现无法和if配对则Error,即程序bug无法执行。

#include<stdio.h>
int main(){
	int m = 5;
	if(m++ > 5)
		printf("%d",m--);
		printf("%d",m);
	else
		printf("%d",m);
	return 0;
}Error

修正:

#include<stdio.h>
int main(){
	int m = 5;
	if(m++ > 5){
		printf("%d",m--);
		printf("%d",m);
	} 
	else
		printf("%d",m);
	return 0;
}

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值