内容正文:
第4章逻辑运算和选择结构
第4章逻辑运算和选择结构
01逻辑型数据
02关系表达式
03逻辑表达式
04短路计算
05if选择结构
06复合语句和if-else选择结构
07选择结构的嵌套
08编程练习和条件表达式
09switch选择结构
10典型例题
2
逻辑型数据
这节课我们讨论逻辑型数据。
3
逻辑值
表达式5 + 3的值是8,int型;表达式5 > 3和表达式3 > 3的值是什么呢?
5 > 3的值为真;3 > 3的值为假。
真和假是逻辑型数据,逻辑型数据也只有真和假。
C语言中当表达式的结果为真时,会用int型1表示;为假时,用int型的0表示。
5 > 3的值是整数1,但表示真;3 > 3的值是整数0,但表示假。
表达式5 + 3的值是8,int型;表达式5 > 3和表达式3 > 3的值是什么呢?
5 > 3的值为真;3 > 3的值为假。
真和假是逻辑型数据,逻辑型数据也只有真和假。
C语言中当表达式的结果为真时,会用int型1表示;为假时,用int型的0表示。
5 > 3的值是整数1,但表示真;3 > 3的值是整数0,但表示假。
4
确认用户输入的整数是正整数
如int a; scanf("%d", &a);,用户输入完成后,怎样确认变量a是否为正数?
变量a是否为正数与表达式a > 0是否为真等价。
当表达式a > 0的值为1时,表示真,即a大于0,用户输入了一个正数;
当表达式a > 0的值为0时,表示假,即a不大于0,用户输入了一个非正数。
表达式a > 0可在程序运行时确定用户的输入是否为正整数。
当表达式的值为真或假时,这个表达式可用于判断某个条件是否成立,某种情况是否出现,为复杂问题的编程处理提供支撑。
程序要求用户输入一个正整数,但怎样确认用户的输入是一个正整数呢?
若用户的输入存储在整型变量a中,则根据表达式a > 0的值可判断用户的输入是否符合要求。
当表达式a > 0的值为1时,表示真,即a大于0,用户输入了一个正数;
当表达式a > 0的值为0时,表示假,即a不大于0,用户输入了一个非正数。
由此可知,用逻辑表达式a > 0可在程序运行时确定用户的输入是否为正整数。
当表达式的值为真或假时,这个表达式可用于判断某个条件是否成立,某种情况是否出现,为复杂问题的编程处理提供支撑。
5
例4-1 分析下面的程序,注意逻辑运算的结果
当用户输入23时,表达式23 > 0的值为1,为真,即用户的输入符合要求;
当用户输入0时,表达式0 > 0的值为0,为假,即用户的输入不符合要求。
用逻辑表达式a > 0可在程序运行时确定用户的输入是否为正整数。
6
普通数据也是逻辑值
C语言中没有逻辑型,表达式的值为假时用整数0表示。0既是整数0,又是逻辑值假。普通数据也是逻辑值。
假用整数0表示,但整数0,小数0.0和0号字符'\0'都是假。非假即真,不是假,就是真,非“0”即真。
C语言中没有逻辑型,表达式的值为假时用整数0表示。0既是整数0,又是逻辑值假。普通数据也是逻辑值。
假用整数0表示,但整数0,小数0.0和0号字符'\0'都是假。非假即真,不是假,就是真,非“0”即真。
int型3,逻辑值真;int型0,逻辑值假;double型0.0,逻辑值假;
char型'0'(字符0),逻辑值真;char型'\0'(0号字符),逻辑值假;
char型'5',逻辑值真;int型5,逻辑值真。
7
普通数据也是逻辑值
分析字面量:3, 0, 0.0, '0', '\0', '5', 5
int型3,逻辑值真;int型0,逻辑值假;double型0.0,逻辑值假
char型'0'(字符0),逻辑值真;char型'\0'(0号字符),逻辑值假
char型'5',逻辑值真;int型5,逻辑值真。
C语言中没有逻辑型,表达式的值为假时用整数0表示。0既是整数0,又是逻辑值假。普通数据也是逻辑值。
假用整数0表示,但整数0,小数0.0和0号字符'\0'都是假。非假即真,不是假,就是真,非“0”即真。
int型3,逻辑值真;int型0,逻辑值假;double型0.0,逻辑值假;
char型'0'(字符0),逻辑值真;char型'\0'(0号字符),逻辑值假;
char型'5',逻辑值真;int型5,逻辑值真。
8
3既是整数3,又是逻辑值真,如何区分?
根据上下文(要参加的运算和所处的“环境” ),可以确定3是整数还是逻辑值。
表达式3 + a求3与变量a的和,逻辑值不能进行算术运算,因此,3是整数不是逻辑值。
表达式a > 3比较a与3的大小,逻辑值不能比较大小,因此,3是整数不是逻辑值。
if(m) ++a;中,关键字if执行时,会根据括号中表达式的值的真假,选择不同的执行路径,因此,变量m的值表示逻辑值。
直接用变量表