第三章

第三章 选择语句

3.1 比较运算符

比较运算符主要是用于判断,返回值一般是Boolean,如果返回值是true那么就可以继续执行,返回值是false则语句不能执行。
比较运算符一半包括大于>、大于等于>=、小于<、小于等于<=、等于==和不等于!=。

3.2逻辑运算符

逻辑运算符主要计算Boolean值之间的逻辑
单与& 二进制运算符 两位同时为1结果才为1否则结果为0.
双语&& 有假则假 同真则真
或| 二进制运算符参与运算的两个对象只要有一个为1结果就为1否则为0。
双或|| 有真则真 同假则假
非! 取反
异或^ 二进制运算符 两个相应位不同则为1相同则为2可以用于互相赋值
例如把a的值赋给b,b的值赋给a可以这么写
a=a^b;
b=a^b;
a=a^b;

3.3if语句

单if
…A
if(条件){
B
}
…C
如果条件为真时 执行顺序为 A-B-C
如果条件为假时 执行顺序为A-C
if-else分支
…A
if(条件){
B
}else{
C
}
…D
如果条件为真时 执行顺序为 A-B-D
如果条件为假时 执行顺序为A-C-D
多if-else嵌套
…A
if(条件1){
B
if(条件2){
B1
}else[
B2
}else{
C
}
…D
如果条件1为真并且条件2为真执行顺序为A-B-B1-D
如果条件1为真并且条件2为假执行顺序为A-B-B2-D
如果条件1位假执行顺序为A-C-D
多if-else分支
…A
if(条件1){
B
}else if(条件2){
C
}else if(条件3){
D
}else{
E
}
…F
如果条件1为真执行顺序为 A-B-F
如果条件2为真执行顺序为 A-C-F
如果条件3为真执行顺序为A-D-F
如果三者都为假执行顺序为A-E-F

3.4 switch语句

选择语句switch
switch(变量){
case 选项1:
如果变量选项1执行该语句
break;
case 选项2:
如果变量
选项2执行该语句
break;

default:
如果选项n中没有适合变量的值,则执行
break;
}
注意:写switch语句的时候一定要记得写break如果不写就会进入死循环。
if和switch的区别:
if可以对区间值进行比较可以为对固定值进行比较
switch只能对固定的一个值进行比较

3.5条件表达式

条件表达式主要指的是布尔表达式 布尔表达式是一个三目运算符
表达式可以通常可以写为:
数据类型 变量名=布尔表达式?常量值1:常量值2;
如果布尔表达式为真则将常量值1的数值赋给变量否则将常量值2的值赋给变量

3.6 常见错误和陷阱

3.6.1 忘记必要的括号

如果块中只有一条语句,就可以忽略花括号,但是当需要的花括号将多条语句括在一起时,忘记花括号是一个常见的程序设计错误,如果通过在没有花括号的if语句中添加一条心语句来修改代码就必须插入花括号。

3.6.2 在if语句中出现错误的分号

在if行加上了分号是一种常见的错误。这个错误是很难发现的,因为它既不是编译错误也不是运行错误,而是一个逻辑错误。当使用换块风格时,经常会出现这个错误。所以使用多行尾块风格可帮助防止出现此类错误。

3.6.3 对布尔值的冗余测试

为了检测测试条件中的布尔型变量是true还是false在判断语句中添加了判断条件为真或假是冗余的,直接把判断条件放在判断语句中即可。

3.6.4 悬空else出现歧义

在多条if嵌套语句中一定要注意缩进,注意if 和else的匹配。否则就会出现歧义。

3.6.5两个浮点数值的相等测试

浮点数具有有限的计算精度,涉及浮点数的计算可能引入取整错误。因此两个浮点数值的相等测试并不可靠。

3.6.6常见陷阱 1:简化布尔变量赋值

在判断语句中会经常出现布尔值,我们可以直接定义一个布尔值变量,避免重复出现。

3.6.7常见陷阱2 :避免不同情形中的重复代码

当循环语句中的输出内容相同时可以直接在循环外协一条代码就可以了,这样会使得代码更加易于维护。因为如果打印语句需要修改,只要修改一个地方就可以了。

本章小结

1.Boolean类型变量可以存储ttue和false。
2.关系操作符(<、<=、==、!=、>、>=)产生一个布尔值。
3.选择语句用于可选择的动作路径编程。选择语句有一下几种类型:单分支if语句、多分支if else语句、嵌套if语句。多分支if-else语句和switch语句和表达式。
4.各种if语句都是基于布尔表达式来控制决定的,根据表达式的值是true和false,这些语句选择两种可能路径中的一种。
5.布尔操作符&&、||、!和^对布尔值和布尔变量进行计算。
6.当对p1&&和p2求值时,Java先求p1的值,如果p1的值为true,在对p2求值,如果p1的值为false,就不再对p2求值,当对p1||p2求值时,Java先求p1值,如果p1为false,在对p2求值,如果p1值为true,就不再对p2求值,因此,&&也称为条件与操作符或短路与操作符,而||也称为条件或操作符或短路或操作符。
7.switch语句根据char、byteshort、int或者string类型的switch表达式来进行控制决定。
8.在switch语句中,关键字break是可选的,但它通常用在每个分支的结尾,以终止switch语句的剩余部分。如果没有出现break语句,则执行接下来的case语句。
9.表达式中的操作符按照括号,操作符优先级以及操作符结合规则所确定的次序进行求值。
10.括号用于强制求值的顺序进行。
11.具有更高优先权的操作符更早的进行操作,对于同样优先级的操作符,它们结合规则确定操作的顺序。
12.除开赋值操作符的所有二元操作符都是左结合的,赋值操作符时候右结合的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值