一、 语句概述
Java中的语句可分为以下6类。
1、方法调用语句
例如:System. out. println("Hello");
2、 表达式语句
由一个表达式构成一个语句,即在表达式尾加上分号。
例如赋值语句:x = 23;
3、 复合语句
可以用{ }把一些语句括起来构成复合语句。
例如:{z = 123+x;System. out. println("How are you");}
4、 空语句
一个分号也是一个语句,称作空语句。
5、 控制语句
控制语句分为条件分支语句、开关语句和循环语句。
6 、package 语句和 import 语句
package语句和 import 语句与类、对象有关。
二、 if条件分支语句
条件分支语句按语法格式可细分为3种形式,以下是这3种形式的详细讲解。
1、 if语句
含义:if语句是单条件、单分支语句,即根据一个条件来控制程序执行的流程。
if语句的语法格式为:
if(表达式){
若干语句
}
if语句的流程图所示。在 if语句中,关键字if后面的一对小括号()内的表达式的值必须是 boolean 类型,
当值为 true时,执行紧跟着的复合语句,结束当前 if 语句的执行;
如果表达式的值为 false,结束当前 if 语句的执行。
true、 false(不能用1、0代替 )表达式需要注意的是,在if语句中,其中的复合语句如果只有一个语句,{}可以省略不写,但为了增强程序的可读性,最好不要省略(这是一个很好的编程习惯)。
2、 if-else语句
含义:if-else语句是单条件、双分支语句,即根据一个条件来控制程序执行的流程。
if-else语句的语法格式为:
if(表达式) {
若干语句
}
else{
若干语句
}
if-else语句的流程图。
在 if-else 语句中,关键字 if后面的一对小括号()内的表达式的值必须是 boolean 类型,
当值为true 时,执行紧跟着的复合语句,结束当前 if-else 语句的执行;
如果表达式的值为 false,则执行关键字 else 后面的复合语句,结束当前 if-else 语句的执行。
下面是有语法错误的 if-else语句:
if(x>0)
y=10;
z=20;
else
y=−100;
正确的写法是:
if(x>0){
y=10;
z=20;
}
else
y=−100;
需要注意的是,在if-else语句中,其中的复合语句如果只有一个语句,{}可以省略不写,但为了增强程序的可读性,最好不要省略习惯。
public class Example3_3 {
public static void main(String args[ ]) {
int math = 65, english = 85;
if(math>60) {
System. out. println("数学及格了");
}
else{
System. out. println("数学不及格");
}
if(english>90) {
System. out. println("英语是优秀");
}
else {
System. out. println("英语不是优秀");
}
System. out. println("我在学习 if-else语句");
}
}
3、if-else if-else语句
含义:if-else if-else 语句是多条件、多分支语句,即根据多个条件来控制程序执行的流程。
if-else if-else语句的语法格式为:
if(表达式){
若干语句
}
else if(表达式){
若干语句
}
if-else 语句的流程图在 if-else if-else 语句中, if以及多个 else if后面的一对小括号()内的表达式的值必须是 boolean 类型。
程序在执行 if-else if-else 时,按该语句中表达式的顺序,首先计算第1个表达式的值,如果计算结果为 true,则执行紧跟着的复合语句,结束当前 if-else if-else 语句的执行,如果计算结果为 false,则继续计算第2 个表达式的值,依次类推,假设计算出第 m个表达式的值为 true,则执行紧跟着的复合语句,结束当前 if-else if-else语句的执行,否则继续计算第 m+1个表达式的值,如果所有表达式的值都为 false,则执行关键字 else后面的复合语句,结束当前 if-else if-else 语句的执行。
三、 switch 开关语句
switch语句是单条件、多分支的开关语句,它的一般格式如下(其中 break语句是可选的)。
switch(表达式)
{
case 常量值1:
若干语句
break;
case 常量值2:
若干语句
break;
…
case 常量值 n:
若干语句
break;
default:
若干语句
}
在 switch语句中, “表达式”的值可以为 byte、 short、 int、 char 和 String类型;
“常量值1”到“常量值 n”也是 byte、 short、 int、 char和 String类型,而且要互不相同。
switch语句首先计算表达式的值,如果表达式的值和某个 case后面的常量值相等,就执行该 case中的若干语句,直到碰到 break语句为止。
如果某个 case中没有使用 break语句,一旦表达式的值和该 case后面的常量值相等,程序不仅执行该 case中的若干语句,而且继续执行后面的 case中的若干语句,直到碰到 break语句为止。
若 switch语句中的表达式的值不与任何 case的常量值相等,则执行 default后面的若干语句。 switch语句中的 default是可选的,如果它不存在,并且 switch语句中表达式的值不与任何 case 的常量值相等,那么 switch语句就不会进行任何处理。
四、for循环语句
for语句的语法格式为:
for(表达式1; 表达式2; 表达式3) {
若干语句
}
for语句由关键字 for、一对小括号()中用分号分隔的3个表达式,以及一个复合语句组成,其中的表达式2必须是一个值为 boolean 型数据的表达式,而复合语句称作循环体。
当循环体中只有一个语句时,大括号{ }可以省略,但最好不要省略,以增加程序的可读性。
表达式1负责完成变量的初始化;表达式2 是值为 boolean 型的表达式,称为循环条件;表达式3用来修整变量,改变循环条件。
for语句的执行规则如下:
(1) 计算表达式1,完成必要的初始化工作。
(2)判断表达式2 的值,若表达式2 的值为 true,则进行(3),否则进行(4)。
(3) 执行循环体,然后计算表达式3,以便改变循环条件,进行(2)。
(4) 结束 for语句的执行。
for 语句的执行流程如图
五、 while循环语句和do-while循环语句
1、while语句的语法格式为:
while(表达式){
若干语句
}
while语句由关键字 while、一对小括号()中的一个值为 boolean类型数据的表达式和一个复合语句组成,其中的复合语句称为循环体。当循环体中只有一个语句时,大括号{}可以省略,但最好不要省略,以增加程序的可读性。
表达式称为循环条件。
while语句的执行规则如下:
(1)计算表达式的值,如果该值是 true,就进行(2),否则进行(3)。
(2)执行循环体,再进行(1)。
(3) 结束 while语句的执行。
2、do-while循环语句的语法格式为:
do{
若干语句
} while(表达式);
do-while循环和 while循环的区别是
do-while的循环体至少被执行一次。
六、break 和 continue 语句
break 和 continue 语句是用关键字 break或 continue加上分号构成的语句,
例如:break;在循环体中可以使用 break语句和 continue语句。
在一个循环中,例如循环50次的循环语句中,如果在某次循环中执行了 break语句,那么整个循环语句就结束;
如果在某次循环执行了 continue语句,那么本次循环就结束,即不再执行本次循环中循环体中 continue语的后面的语句,而转入进行下一次循环。
七、for语句与数组
JDK 5 对 for 语句的功能给予了扩充、增强,以便用户更好地遍历数组。
其语法格式如下:
for(声明循环变量:数组的名字) {
...
}
其中,声明的循环变量的类型必须和数组的类型相同。
这种形式的 for语句类似自然语言中的 for each 语句,为了便于读者理解上述 for语句,可以将这种形式的 for语句翻译成“对于循环变量依次取数组中的每一个元素的值”。