1. 顺序结构
顺序结构就是程序从上到下逐行
地执行。表达式语句都是顺序执行的。并且上一行对某个变量的修改对下一行会产生影响。
public class StatementTest{
public static void main(String[] args){
int x = 1;
int y = 2;
System.out.println("x = " + x);
System.out.println("y = " + y);
//对x、y的值进行修改
x++;
y = 2 * x + y;
x = x * 10;
System.out.println("x = " + x);
System.out.println("y = " + y);
}
}
Java中定义变量时采用合法的前向引用
。如:
public static void main(String[] args) {
int num1 = 12;
int num2 = num1 + 2;
}
错误形式:
public static void main(String[] args) {
int num2 = num1 + 2;
int num1 = 12;
}
2. 分支语句
2.1 if-else条件判断结构
2.1.1 基本语法
结构1:单分支条件判断:if
格式:
if(条件表达式){
语句块;
}
说明:
条件表达式必须是布尔表达式(关系表达式或逻辑表达式)或 布尔变量。
执行流程:
- 首先判断条件表达式看其结果是true还是false
- 如果是true就执行语句块
- 如果是false就不执行语句块
结构2:双分支条件判断:if…else
格式:
if(条件表达式) {
语句块1;
}else {
语句块2;
}
执行流程:
- 首先判断条件表达式看其结果是true还是false
- 如果是true就执行语句块1
- 如果是false就执行语句块2
结构3:多分支条件判断:if…else if…else
格式:
if (条件表达式1) {
语句块1;
} else if (条件表达式2) {
语句块2;
}
...
}else if (条件表达式n) {
语句块n;
} else {
语句块n+1;
}
说明:
一旦条件表达式为true,则进入执行相应的语句块。执行完对应的语句块之后,就跳出当前结构。
执行流程:
- 首先判断关系表达式1看其结果是true还是false
- 如果是true就执行语句块1,然后结束当前多分支
- 如果是false就继续判断关系表达式2看其结果是true还是false
- 如果是true就执行语句块2,然后结束当前多分支
- 如果是false就继续判断关系表达式…看其结果是true还是false
…
n. 如果没有任何关系表达式为true,就执行语句块n+1,然后结束当前多分支。
当条件表达式之间是“
互斥
”关系时(即彼此没有交集),条件判断语句及执行语句间顺序无所谓。当条件表达式之间是“
包含
”关系时,“小上大下 / 子上父下
”,否则范围小的条件表达式将不可能被执行。
2.1.3 if…else嵌套
在 if 的语句块中,或者是在else语句块中,又包含了另外一个条件判断(可以是单分支、双分支、多分支),就构成了嵌套结构
。
执行的特点:
(1)如果是嵌套在if语句块中的,只有当外部的if条件满足,才会去判断内部的条件
(2)如果是嵌套在else语句块中的,只有当外部的if条件不满足,进入else后,才会去判断内部的条件
**案例4:**由键盘输入三个整数分别存入变量num1、num2、num3,对它们进行排序(使用 if-else if-else),并且从小到大输出。
class IfElseTest4 {
public static void main(String[] args) {
//声明num1,num2,num3三个变量并赋值
int num1 = 23,num2 = 32,num3 = 12;
if(num1 >= num2){
if(num3 >= num1)
System.out.println(num2 + "-" + num1 + "-" + num3);
else if(num3 <= num2