【Java基础系列】6- 选择结构与分支结构

【Java基础系列】6- 选择结构与分支结构,第1张

【Java基础系列】6- 选择结构与分支结构 选择结构与分支结构

选择结构概念:

根据已知条件进行逻辑判断,满足条件后执行响应 *** 作;

1、基本if选择结构
  • 语法:
if(布尔表达式) {
    // 代码块:表达式为真时执行
}
  • 执行流程:
    • 对布尔表达式进行判断
    • 结果为true,则先执行代码块,再执行后续代码;

举个例子:

public class TestBaisclf{
	public static void main(String[] args){
		
		double score = 100.0;
		
		if(score == 100.0){
			System.out.println("恭喜,满分!!!");
		}
		
		System.out.println("程序结束");
	}
}

打开cmd完成编译以及运行,如下图:

2、if else选择结构
  • 语法:

    if(布尔表达式){
        // 代码块1
    }else{
        // 代码块2
    }
    
  • 执行流程:

    • 对布尔表达式进行判断
    • 结果为true,则先执行代码块1,再退出整个结果,执行后续代码;
    • 结果为false,则先执行 代码块2,再退出整个结构,执行后续代码;
  • 举个例子:

    public class TestElse{
    	
    	public static void main(String[] args){
    		
    		double score = 99.0;
    		
    		if(score == 100.0){
    			System.out.println("恭喜,满分");
    		}else{
    			System.out.println("抱歉,罚抄");
    		}
    		
    		System.out.println("程序结束....");
    	}
    }
    

    打开cmd完成编译以及运行,如下图:

3、多重if选择结构
  • 语法:

    // 当前的条件为false为假时会继续往下走
    if(布尔表达式1){
        // 代码块1
    }else if(布尔表达式2){
        // 代码块2
    }else if(布尔表达式3){
        // 代码块3
    }else{
        // 代码块4
    }
    
  • 执行流程:

    • 表达式1为true,则执行代码块1,再退出整个结构;
    • 表达式2为true,则执行代码块2,再退出整个结构;
    • 表达式3为true,则执行代码块3,再退出整个结构;
    • 以上均为false,则执行代码块4,再退出整个结构;
    • 注意:相互排斥,有一个为true,其他均不再执行,适用于区间判断;
  • 举个例子:

    public class TestMultipleIf{
    	
    	public static void main(String[] args){
    		
    		
    		
    		int money = 110; // 单位:万
    		
    		if(money > 100){
    			System.out.println("奔驰S级");
    		}else if(money > 50){
    			System.out.println("宝马5系");
    		}else if(money > 10){
    			System.out.println("奥迪A4L");
    		}else{
    			System.out.println("捷安特自行车");
    		}
    
    		System.out.println("程序结束...");
    		
    	}
    }
    

    打开cmd完成编译以及运行,如下图:

4、嵌套if选择结构
  • 语法:

    if(外层表达式){
        if(内层表达式){
            // 内层代码块1
        }else{
            // 内层代码块2
        }
    }else{
        // 外层代码块
    }
    
  • 执行流程:

    • 当外层条件满足时,再判断内层条件
  • 注意:

    • 一个选择结构中,可嵌套另一个选择结构
    • 嵌套格式正确的情况下,支持任意组合
  • 举个例子:

    public class TestNestedIf{
    	
    	public static void main(String[] args){
    		
    		
    		
    		int timer = 11;
    		
    		char sex = '男';
    		
    		if(timer <= 10){
    			
    			// 进入总决赛
    			if(sex == '男'){
    				System.out.println("男子组决赛");
    			}else{
    				System.out.println("女子组决赛");
    			}
    		}else{
    			System.out.println("淘汰");
    		}
    	}
    }
    

    打开cmd完成编译以及运行,如下图:

5、switch分支结构
  • 语法:

    switch(变量 | 表达式){
        case 值1:
            逻辑代码1;
        case 值2:
            逻辑代码2;
        case 值n:
            逻辑代码n;
        default:
            未满足时的逻辑代码;
    }
    
  • 可判断的类型(不再判断布尔类型)

    byte、short、int、char、String(JDK7+)

  • 执行流程:

    • 如果变量中的值等于值1,则执行逻辑代码1;
    • 如果变量中的值等于值2,则执行逻辑代码2;
    • 如果变量中的值等于值n,则执行逻辑代码n;
    • 如果变量中的值没有匹配的case值时,执行default中的逻辑代码;
  • 注意:

    • 当匹配的case执行后,不会自动退出整个结构,而是继续向下执行;
    • case…、或者default没有顺序可言的,输出结果都是一样的(比如:将default作为第一个值)
  • break 关键字

    • 可在匹配的case执行后,跳出整个结构
  • 适用于等值判断;

  • 例子1:

    public class TestSwitch{
    	
    	public static void main(String[] args){
    		
    		
    		
    		int weekDay = 4;
    		
    		switch(weekDay){
    			// 根据weekDay的值,找到匹配的case,并执行逻辑代码
    			
    			case 1:
    				System.out.println("湘菜");
    
    			case 2:
    				System.out.println("川菜");
    
    			case 3:
    				System.out.println("粤菜");
    
    			case 4:
    				System.out.println("浙菜");
    
    			case 5:
    				System.out.println("川菜");
    
    			case 6:
    				System.out.println("川菜");
    
    			case 7:
    				System.out.println("徽菜");
    
    		}
    		
    		System.out.println("程序结束...");
    	} 
    }
    

    打开cmd完成编译以及运行,如下图:

  • 例子2:

    public class TestSwitch{
    	
    	public static void main(String[] args){
    		
    		
    		
    		int weekDay = 4;
    		
    		switch(weekDay){
    			// 根据weekDay的值,找到匹配的case,并执行逻辑代码
    			
    			case 1:
    				System.out.println("湘菜");
    				break;
    			case 2:
    				System.out.println("川菜");
    				break;
    			case 3:
    				System.out.println("粤菜");
    				break;
    			case 4:
    				System.out.println("浙菜");
    				break;
    			case 5:
    				System.out.println("川菜");
    				break;
    			case 6:
    				System.out.println("川菜");
    				break;
    			case 7:
    				System.out.println("徽菜");
    				break;
    		}
    		
    		System.out.println("程序结束...");
    	} 
    }
    

    打开cmd完成编译以及运行,如下图:

  • 例子3:

    向下贯穿特性,可将输出结果一致的放在一起使用;

    public class TestSwitch{
    	
    	public static void main(String[] args){
    		
    		
    		
    		int weekDay = 4;
    		
    		switch(weekDay){
    			// 根据weekDay的值,找到匹配的case,并执行逻辑代码
    			
    			case 1:
    				System.out.println("湘菜");
    				break;
    
    			case 3:
    				System.out.println("粤菜");
    				break;
    			case 4:
    				System.out.println("浙菜");
    				break;
    			case 2:
    			case 5:
    			case 6:
    				System.out.println("川菜");
    				break;
    			case 7:
    				System.out.println("徽菜");
    				break;
    		}
    		
    		System.out.println("程序结束...");
    	} 
    }
    

    打开cmd完成编译以及运行,如下图:

  • 例子4:

    public class TestSwitch{
    	
    	public static void main(String[] args){
    		
    		
    		
    		int weekDay = 8;
    		
    		switch(weekDay){
    			// 根据weekDay的值,找到匹配的case,并执行逻辑代码
    			
    			case 1:
    				System.out.println("湘菜");
    				break;
    
    			case 3:
    				System.out.println("粤菜");
    				break;
    			case 4:
    				System.out.println("浙菜");
    				break;
    			case 2:
    			case 5:
    			case 6:
    				System.out.println("川菜");
    				break;
    			case 7:
    				System.out.println("徽菜");
    				break;
    				
    			//case 8:
    			//	System.out.println("请输入1~7之间的整数!"); // 如果输入的值是以上以外的值则无法做出判断,此时可使用default
    			default:
    				System.out.println("请输入1~7之间的整数!");
                    
    		}
    		
    		System.out.println("程序结束...");
    	} 
    }
    

    打开cmd完成编译以及运行,如下图:

  • 例子5:

    public class TestSwitch{
    	
    	public static void main(String[] args){
    		
    		
    		
    		int weekDay = 8;
    		
    		switch(weekDay){
    			// 根据weekDay的值,找到匹配的case,并执行逻辑代码
    			
    			default:
    				System.out.println("请输入1~7之间的整数!");
    				break;
    			
    			case 1:
    				System.out.println("湘菜");
    				break;
    
    			case 3:
    				System.out.println("粤菜");
    				break;
    			case 4:
    				System.out.println("浙菜");
    				break;
    			case 2:
    			case 5:
    			case 6:
    				System.out.println("川菜");
    				break;
    			case 7:
    				System.out.println("徽菜");
    				break;
    				
    			//case 8:
    			//	System.out.println("请输入1~7之间的整数!"); // 如果输入的值是以上以外的值则无法做出判断,此时可使用default
    			// case...、或者default没有顺序可言的,输出结果都是一样的(比如:将default作为第一个值)
    			//default:
    			//	System.out.println("请输入1~7之间的整数!");
    		}
    		
    		System.out.println("程序结束...");
    	} 
    }
    

    打开cmd完成编译以及运行,如下图:

6、局部变量
  • 概念

    声明再方法内部的变量,必须先赋值再使用;

  • 作用范围:

    定义行开始到所在的代码结束;

  • 注意

    • 多个变量,在重合的作用范围内,不可出现重名(命名冲突)
  • 举个例子:

    public class TestLocalVariable{
    	
    	public static void main(String[] args){
    		
    		int a = 10; // 局部变量的声明(包含在主方法中),必须先赋值再使用(变量a的作用范围:主方法内)
    		
    		System.out.prinln(a);
    		
    		if(1 == 1){
    			int b = 20; // 局部变量,超出作用范围之后,会立即回收(变量b的作用范围:if选择结构内)
    			
    			System.out.prinln(a);
    		}
    	}
    }
    

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5692986.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存