【Java从入门到起飞】流程控制语句

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(条件表达式){
  	语句块;

说明:条件表达式必须是布尔表达式(关系表达式或逻辑表达式)或 布尔变量。

执行流程:

  1. 首先判断条件表达式看其结果是true还是false
  2. 如果是true就执行语句块
  3. 如果是false就不执行语句块

!外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

结构2:双分支条件判断:if…else

格式:

if(条件表达式) {
   
    
     
  	语句块1;
}else {
   
    
    
  	语句块2;
}

执行流程:

  1. 首先判断条件表达式看其结果是true还是false
  2. 如果是true就执行语句块1
  3. 如果是false就执行语句块2

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

结构3:多分支条件判断:if…else if…else

格式:

if (条件表达式1) {
   
    
    
  	语句块1;
} else if (条件表达式2) {
   
    
    
  	语句块2;
}
...
}else if (条件表达式n) {
   
    
    
 	语句块n;
} else {
   
    
    
  	语句块n+1;
}

说明:一旦条件表达式为true,则进入执行相应的语句块。执行完对应的语句块之后,就跳出当前结构。

执行流程:

  1. 首先判断关系表达式1看其结果是true还是false
  2. 如果是true就执行语句块1,然后结束当前多分支
  3. 如果是false就继续判断关系表达式2看其结果是true还是false
  4. 如果是true就执行语句块2,然后结束当前多分支
  5. 如果是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