一、引言
选择语句要用到条件。条件就是布尔表达式。
二、Boolean数据类型
1、比较运算符,Java提供六种比较运算符,用于比较数值,也可以对字符进行比较。
运算符
名称
结果
<
小于
true or false
<=
小于等于
true or false
>
大于
true or false
>=
大于等于
true or false
==
等于
true or false
!=
不等于
true or false
2、布尔变量
具有布尔值的变量称为布尔变量。
3、boolean数据类型
boolean数据类型用于声明布尔型变量。
4、布尔直接量
true和false。
三、一个简单的数学学习工具
四、if语句
Java有几种类型的选择语句:单向if语句、双向if语句、嵌套if语句、switch语句和条件表达式。
单向if语句
1、语法:
if(布尔表达式) {
语句(组);
}
2、流程图:
布尔表达式?真?语句(组)?结束;
?假?结束;
3、注意:
1)、布尔表达式应该用括号扩住;
2)、如果花括号内只有一条语句,则可以省略花括号。
五、猜生日
bk位为整数1,就出现在setk中。
六、双向if语句
1、语法:
if(布尔表达式) {
布尔表达式为真时执行的语句(组);
}
else {
布尔表达式为假时执行的语句(组);
}
2、流程图:
布尔表达式?真?条件为真时执行的语句(组)?结束;
?假?条件为假时执行的语句(组)?结束;
3、注意:如果花括号中只有一条语句,那就可以省略花括号。
七、嵌套的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、警告:
数学角度:
1 <= numberOfDaysInAMonth <= 31
Java角度:
(1 <= numberOfDaysInAMonth) && (numberOfDaysInAMonth <= 31)
2、注意:
1)、一个布尔型值变量不能转换为其他类型的值,其他类型的值也不能转换为布尔类型值。
2)、德模佛定理:
!(condition1 && condition2) 和 !condition1 || !condition2 是一样的。
!(condition1 || condition2) 和 !condition1 && !condition2 是一样的。
3)、&&又称为条件与运算符或短路与运算符,而||称为条件或运算符或短路或运算符。
十三、判断闰年
isLeapYear = (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)
十四、彩票
if (guess == lottery) {}
else if (guessDigit2 == lotteryDigit1 &&
guessDigit1 == lotteryDigit2) {}
else if (guessDigit1 == lotteryDigit1 ||
guessDigit1 == lotteryDigit2 ||
guessDigit2 == lotteryDigit1 ||
guessDigit2 == lotteryDigit2) {}
else {}
十五、Switch语句
1、完整语法:
Switch(witch表达式) {
case 值1:语句(组)1;
break;
case 值2:语句(组)2;
break;
…
case 值N:语句(组)Nv;
break;
default:默认情况下执行的语句(组);
}
2、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语句是顺序检测的。
十六、条件表达式
1、语法:
boolean-expression ? expression1 : expression2;(布尔表达式?表达式1:表达式2)
三目运算符
十七、格式化控制台输出
printf方法的语法:
System.out.printf(fromat, item1,item2,…,itemk);
这里的format是指一个子串和格式化标示符组成的字符串。
格式标示符指定每个条目应该如何显示,条目可以是数值、字符、字符串或布尔值。
一个标示符是以百分号(%)开头的转换码
常用的标示符:
标示符
输出
%b
布尔值
%c
字符
%d
十进制整数
%f
浮点数
%e
标准科学计数法形式的数
%s
字符串
exp:
int count = 1;
double 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”);