第一部分:选择
3.1 boolean 数据类型
boolean 数据类型声明一个具有值 true 或者 false 的变量。
比较的结果是一个布尔值:true (真)或 false (假)。
相等的关系操作符是两个等号(==), 而不是一个等号( = ), 后者是指斌值操作符。
具有布尔值的变量称为布尔变量( boolean variable), boolean 数据类型用于声明布尔 型变量。boolean 型变量可以是以下这两个值中的一个:true 和 false。例如,下述语句将 true 赋值给变量lightsOn:
boolean lightsOn = true;
3.3 if 语句
if 语句是一个结构,允许程序确定执行的路径。
Java 有几种类型的选择语句:单分支 if 语句、双分支 ifelse 语句、嵌套 if 语句、多 分支 ifelse 语句、switch 语句和条件表达式。
3.3.1 单分支if语句
if (布尔表达式){
语句(组);
}
如果布尔表达式计算的结果为 true , 则执行块内语句。
例子:
if (radius >= 0) {
area = radius * radius * PI;
System.out.println("The area for the circle of radius " + radius + "is area”);
}
若圆括号内布尔表达式为假,则直接向下运行,不看花括号中的内容。若为真,则运行花括号中的内容。
3.3.2 双分支 if-else 语句
当指定条件为 true时单分支 if 语句执行一个操作。而当条件为 false时什么也不干。 但是,如果你希望在条件为 false 时也能执行一些动作,该怎么办呢?你可以使用双分支 if 语句。根据条件为 true 或 false, 双分支 if 语句可以指定不同的操作。
if (布尔表达式> {
布尔表达式为其时执行的语句(组);
}else{
布尔表达式为假时执行的语句(组);
}
当布尔表达式为真时,执行if里面的语句;当布尔表达式为假时,执行else里面的语句。
3.3.3 多分支 if-else 语句
if (布尔表达式> {
布尔表达式为其时执行的语句(组);
}else if(布尔表达式){
布尔表达式为假时执行的语句(组);
}else{
布尔表达式为假时执行的语句(组);
}
满足那个圆括号里的布尔表达式,就执行相对应的语句组。
3.4 switch语句
switch 语句基于变量或者表达式的值来执行语句。
下面是 switch 语句的完整语法:
switch (switch 表达式){
case 值 1: 语句(组)1;
break;
case 值 2: 语句(组)2;
break;
case 值 N: 语句(组)Nv
break;
default:R认情况下执行的语句(组)
>
switch 语句遵从下述规则:
① switch 表达式必须能计算出一个 char、byte、short,int 或者 String 型值,并且必 须总是要用括号括住。(char 和 String 类型将在下一章介绍。)
② valuel,...,valueN 必须与 switch 表 达 式 的 值 具 有 相 同 的 数 据 类 型。注 意: valuel, valueN 都是常量表达式,也就是说这里的表达式是不能包含变量的,例如,不 允许出现 1+X。
③ 当 switch 表达式的值与 case 语句的值相匹配时,执行从该 case 开始的语句,直到 遇到一个 break 语句或到达该 switch 语句的结束。
④ 默认情况(default)是可选的,当没有一个给出的 case 与 switch 表达式匹配时, 用来执行该操作。
⑤ 关键字 break 是可选的。break 语句会立即终止 switch 语句。
3.5 操作符的优先级和结合规则
优先级规则定义了操作符的先后次序,如 表 3 - 8 所示,它包含了目前所学的所有操作符。 它们从上到下按优先级递减的方式排列。逻辑操作符的优先级比关系操作符的低,而关系操 作符的优先级比算术操作符的低。优先级相同 的操作符排在同一行。
第二部分 循环语句
3.6 while 循环
while 循环在条件为真的情况下,重复地执行语句。
while 循环的语法如下 :
while( 循环继缞条件){
// 循环体
语句 C 组 );
}
3.7 do while 循环
dowhile 循环是 while 循环的变体。它的语法如下:
do {
// 循环体 ;
语句(组 );
} while ( 循环继续条件);
首先执行循环体,然后计算循环继续条件。如果 计算结果为 true, 则重复执行循环体;如果为 false, 则终止 dowhile 循环。while 循环与 dowhile 循环的 差别在于:计算循环继续条件和执行循环体的先后顺 序不同。
3.8 for 循环
for 循环具有编写循环的简明语法。
通常,for 循环的语法如下所示:
for (初始操作;循环鏈续条件;每次迭代后的操作){
// 循环体;
语句(组);
}
for 循环使用一个变量来控制循环体的执行次数,以及什么时候循环终止。 这个变量称为控制变量。初始化动作是指初始化控制变量,每次迭代后的 动作通常会对控制变量做自增或自减,而循环继续条件检验控制变量是否达到终止值。
例:下面的 for 循环打印 Welcome to Java! 100 次:
int i;
for (i = 0; i < 100; i++){
System.out.println("Weicowe to Java!");
}
循环控制变量可以在 for 循环中声明和初始化。因此上面的代码可以写为:
for (int i = 0; i < 100;i++){
System.out.println("Weicome to Java!");
}
3.9 采用哪种循环
while 循环和 for 循环都称为前测循环, 因为继续条件是在循环体执行之 前检测的,dowhile 循环称为后测循环, 因为循环条件是在循环体执行之后检测的。三种形式的循环语句:while、dowhile 和 for, 在表达上是等价的。也就是说, 可以使用这三种形式之一来编写一个循环。
例如,下面的 a 中 while 循环总能转化为图 b中 的 for 循环:
//A
while(loop-continuuation-condition) {
//loop-body;
}
//B
for(;loop-continuuation-condition;) {
//loop-body;
}