1.关系运算符和关系表达式
1. 关系运算符及其优先次序
结合方向(自左向右)
关系运算符的优先级低于算术运算符。
关系运算符的优先级高于赋值运算符。
2.关系表达式
用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称关系表达式。
关系表达式的值是一个逻辑值,即“真”或“假”。“真”为1,“假”为0;非0即为真;
关系表达式的类型为整型。
表达式1 && 表达式2 ,如果表达式1为假,会发生表达式截断,不会计算表达式2。
表达式1 || 表达式2 ,如果表达式1为真,会发生表达式截断,不会计算表达式2。
2.逻辑运算符和逻辑表达式
1.逻辑运算符及其优先次序
&& (逻辑与) 11级优先级 结合方向:自左至右
|| (逻辑或) 12级优先级 结合方向:自左至右
! (逻辑非) 2级优先级 结合方向:自右至左
逻辑运算的真值表
逻辑运算符和算术运算符、关系运算符、赋值运算符的优先级
2.逻辑表达式
逻辑表达式的值应该是一个逻辑量“真”或“假”。
实际上,逻辑运算符两侧的运算对象不但可以是0和1,或者是0和非0的整数,也可以是字符型、实型或指针型等。系统最终以0和非0来判定它们属于“真”或“假。
逻辑运算的真值表
a && b && c 只有a为真(非0)时,才需要判别b的值,只有a和b都为真的情况下才需要判别c的值。只要a为假,就不必判别b和c(此时整个表达式已确定为假)。
a || b || c 只要a为真(非0),就不必判断b和c。只有a为假,才判别b。a和b都为假才判别c.
判断闰年
(year % 4 == 0 && year % 100 != 0 || year %400==0)
3. if语句
1. if语句的三种形式
if(表达式) 语句
if (表达式) 语句1 else 语句2
if (表达式) 语句1
else if(表达式) 语句2
else if(表达式) 语句3
.
.
else if (表达式m) 语句m
else 语句 n
3种形式的if语句中在if后面都有表达式,一般为逻辑表达式或关系表达式.
第二、第三种形式的if语句中,在每个else前面有一分号,整个语句结束处有一分号。
注 :else子句不能作为语句单独使用,它必须是if语句的一部分,与if配对使用。
在if和else后面可以只含一个内嵌的操作语句(如上例),也可以有多个操作语句,此时用花括号“{}”将几个语句括起来成为一个复合语句。
注 :在 else上面的花括号“}”外面不需要再加分号。因为()内是一个完整的复合语句,不需另附加分号。
2.if语句嵌套
if()
if() 语句1
else() 语句2
else()
if() 语句3
else() 语句4
3.条件运算符 结合方向(自左向右) 优先级 13级
一般形式为 表达式1 ?表达式2 :表达式3 如果表达式1为真,则表达式2的值作为整个条件表达式的值,如果表达式1为假 ,则表达式3的值作为整个条件表达式的值.
4.switch 语句
其一般形式如下
说明:
switch 后面括号内的”表达式“,必须为整形或与整形相兼容的类型。case 后面是常量。
当表达式的值与某一个case后面的常量表达式的值相等时,就执行此 case 后面的语句,若所有的case 中的常量表达式的值都没有与表达式的值匹配的,就执行 default后面的语句。
每一个case的常量表达式的值必须互不相同;否则就会出现互相矛盾的现象。
各个case和default的出现次序不影响执行结果。
执行完一个 case后面的语句后,流程控制转移到下一个case 继续执行。各个语句后面要加break;
多个case可以共用一组执行语句。
输入年份判断是不是闰年
输入三个数求最大数