选择语句要用到条件。条件就是布尔表达式。
二、Boolean数据类型
1、比较运算符,Java提供六种比较运算符,用于比较数值,也可以对字符进行比较。
运算符 | 名称 | 结果 |
---|---|---|
< | 小于 | true or false |
<= | 小于等于 | true or false |
> | 大于 | true or false |
>= | 大于等于 | true or false |
== | 等于 | true or false |
!= | 不等于 | true or false |
具有布尔值的变量称为布尔变量。
3、boolean数据类型
boolean数据类型用于声明布尔型变量。
4、布尔直接量
true和false。
三、一个简单的数学学习工具
四、If语句
Java有几种类型的选择语句:单向if语句、双向if语句、嵌套if语句、switch语句和条件表达式。
单向if语句
语法:
If(布尔表达式) {
语句(组);
}
流程图:
布尔表达式->真->语句(组)->结束;
->假 ->结束;
五、猜生日
bk位为整数1,就出现在setk中。
六、双向if语句
语法:
if(布尔表达式) {
布尔表达式为真时执行的语句(组);
}
else {
布尔表达式为假时执行的语句(组);
}
流程图:
布尔表达式->真->条件为真时执行的语句(组)->结束;
->假->条件为假时执行的语句(组)->结束;
七、嵌套的if语句
if或if…else语句中可以是其他的if或if…else语句。外层if语句里的内层if语句称为嵌套的。
内层if语句还可以包含其他if语句,事实上对嵌套的深度没有限制。
八、选择语句中的常见错误
1、忘记必要的括号
如果块中只有一条语句,就可以忽略花括号。但是,当需要用花括号将多条语句括在一起时,
忘记花括号是一个常见的程序设计错误。
2、在if行出现错误的分号
它既不是编译错误也不是运行错误,而是一个逻辑错误。等价于一个带空块的代码。
当使用下行块风格时,经常会出现这个错误。所以使用行尾块风格可帮助防止出现此类错误。
3、对布尔值的冗余测试
4、悬空else出现歧义
九、一个改进的数学学习工具
Math.random(),返回一个双精度的随机值d且满足0.0<=d<1.0。
十、计算身体质量指数
十一、计算税款
十二、逻辑运算符
运算符 | 名称 | 说明 |
---|---|---|
! | 非 | 逻辑非 |
&& | 与 | 逻辑与 |
|| | 或 | 逻辑或 |
^ | 异或 | 逻辑异或 |
数学角度:
1 <= numberOfDaysInAMonth <= 31
Java角度:
(1 <= numberOfDaysInAMonth) && (numberOfDaysInAMonth <= 31)
2、注意:
A、一个布尔型值变量不能转换为其他类型的值,其他类型的值也不能转换位布尔类型值。
B、德模佛定理:
!(condition1 && condition2) 和 !condition1 || !condition2 是一样的。
!(condition1 || condition2) 和 !condition1 && !condition2 是一样的。
C、&&又称为条件与运算符或短路与运算符,而||称为条件或运算符或短路或运算符。
十三、判断闰年
isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
十四、彩票
十五、Switch语句
完整语法:
Switch(witch表达式) {
case 值1:语句(组)1;
break;
case 值2:语句(组)2;
break;
…
case 值N:语句(组)Nv;
break;
default:默认情况下执行的语句(组);
}
switch语句遵从下述规则:
1)switch表达式必须能计算出一个char、byte、short或int型值,并且必须总是要用括号扩住。
2)value1,…,valueNv必须与switch表达式的值具有相同的数据类型,且是常量表达式。
3)当switch表达式的值与case语句的值相匹配时,执行从该case开始的语句,
直到遇到一个break语句或到达该switch语句的末端。
4)关键字break是可选的。break语句会立即终止整个switch语句。
5)default是可选的,用来指定没有一个指定的case与switch表达式匹配时应该采取的操作。
6)case语句是顺序检测的。
十六、条件表达式
语法:
boolean-expression ? expression1 : expression2;(布尔表达式?表达式1:表达式2)
三目运算符
十七、格式化控制台输出
printf方法的语法:
System.out.printf(fromat, item1,item2,…,itemk);
这里的format是指一个子串和格式化标示符组成的字符串。
格式标示符指定每个条目应该如何显示,条目可以是数值、字符、字符串或布尔值。
一个标示符是以百分号(%)开头的转换码
常用的标示符:
标示符 | 输出 |
---|---|
%b | 布尔值 |
%c | 字符 |
%d | 十进浮点数制整数 |
%f | 浮点数 |
%e | 标准科学计数法形式的数 |
%s | 字符串 |
int count = 1;
doubouel amount = 1.0;
System.out.printf(‘%d%f’,count,amount);
可以在标示符中指定宽度和精度。
指定宽度和精度的例子
举例 | 输出 |
---|---|
%5c | 输出字符并在这个字符条目前面加4个空格 |
%6b | 输出boolean值,在false前面加一个空格,在true前面加两个空格。 |
%5d | 输出整数条目,宽度至少为5。如果该条目的数字位数小于5,就在前面加空格。 如果该条目的位数大于5,则自动增加宽度。 |
%10.2f | 输出的浮点数宽度至少为10,包括小数点和小数点后两位。这样,给小数点前分配了7位。 如果该项小数点的位数小于7,就在数字前面加空格。如果该项小数点前的位数大于7,则自动增加宽度。 |
%10.2e | 输出的浮点条目的宽度至少为10,包括小数点,小数点后两位和指数部分。 如果该科学计数法显示的数字小于10,就给数前加空格。 |
%12s | 输出的字符串宽度至少为12。如果该字符串条目小于12个字符,就在该条目前加空格。 如果该字符串条目多于12个字符,则自动增加宽度。 |
十八、 运算符的优先级和结合方向
运算符的优先级
优先级 | 运算符 |
---|---|
最高级 | var++和 var-- (后置运算符) |
+, - (一元加号和一元减号), ++var and --var (前置运算符) | |
(type) (类型转换) | |
! (非) | |
*, /, % (乘法、除法和求余运算) | |
+, - (二元加法和减法) | |
<, <=, >, >= (比较运算符) | |
==, != (相等运算符) | |
^ (异或) | |
&& (条件与 ) | |
|| (条件或) | |
最低级 | =, +=, -=, *=, /=, %= (赋值运算符) |
如果相邻运算符的优先级相同,则结合方向决定它们的执行顺序。
除了赋值运算符之外,所有的二元运算符都是左结合的。
赋值运算符是右结合的。
十九、(GUI)确认对话框
下面的语句创建一个确认对话框:
int option = JOptionPane.showConfirmDialog(null,”Continue”);
当点击按钮时,这个方法会返回一个选择值。点击Yes按钮返回的值是JOptionPane.YES_OPTION(0),
点击No按钮返回的值是JOptionPane.NO_OPTION(1),
点击Cancel按钮返回的值是JOptionPane.CANCEL_OPTION(2)。