• 10_选择结构


    选择结构

    概念:根据已知条件进行逻辑判断,满足条件后执行相应操作

    一. 基本if选择结构

    语法:

    if(布尔表达式){

    ​ //代码块

    }

    执行流程:

    • 对布尔表达式进行判断
    • 结果为true,则先执行代码块,再执行后续代码
    • 结果为false,则跳过代码块,直接执行后续代码
    public class TestBasicIf{
    	
    	public static void main(String[] args){
    		
    		double score = 100.0;
    		
    		if(score == 100.0){
    			System.out.println("恭喜,满分!");
    		}
    		System.out.println("程序结束...");
    	}
    }
    

    二. if else选择结构

    语法:

    if(布尔表达式){

    ​ //代码块1

    }else{

    ​ //代码块2

    }

    执行流程:

    • 对布尔表达式进行判断
    • 结果为true,则先执行代码块1,再退出整个结构,执行后续代码
    • 结果为false,则先执行代码块2,再退出整个结构,执行后续代码
    public class TestIfElse{
    	
    	public static void main(String[] args){
    		
    		double score = 99.0;
    		
    		if(score == 100.0){
    			System.out.println("恭喜,满分");
    		}else{
    			System.out.println("抱歉,罚抄");
    		}
    		
    		System.out.println("程序结束");
    		
    	}
    }
    

    三. 多重if选择结构

    语法:

    if(布尔表达式){

    ​ //代码块1

    }else if(布尔表达式2){

    ​ //代码块2

    }else if(布尔表达式3){

    ​ //代码块3

    }else{

    ​ //代码块4

    }

    public class TestMultipleIf{
    	
    	public static void main(String[] args){
    		
    		/*
    			根据预算金额选购车辆
    			
    			预算 > 100万		奔驰S级
    			预算 > 50万		宝马5级
    			预算 > 10万		奥迪A4L
    			预算 < 10万		捷安特自行车	
    		*/
    		int money = 9;//单位:万
    		
    		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("程序结束...");
    	}
    }
    

    四. 嵌套if选择结构

    语法:
    if(外层表达式){

    ​ if(内层表达式){

    ​ //内层代码块1

    ​ }else{

    ​ //内层代码块2

    ​ }

    ​ }else{

    ​ //外层代码块

    ​ }

    执行流程:

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

    注意:

    • 一个选择结构中,可嵌套另一个选择结构
    • 嵌套格式正确的情况下,支持任意组合
    public class TestNestedIf{
    	
    	public static void main(String[] args){
    		
    		/*
    			运动会百米赛跑
    			用时10秒之内的人进入总决赛,否则淘汰
    		*/
    		
    		int timer = 9;
    		
    		char sex = '男';
    		
    		if(timer <= 10){//外层条件
    			//进入总决赛
    			if(sex == '男'){//内层条件
    				System.out.println("男子总决赛");
    			}else{
    				System.out.println("女子总决赛");
    			}
    		}else{
    			System.out.println("淘汰");
    		}
    	}
    }
    

    五. 分支结构

    语法:

    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执行后,不会自动退出整个结构,而是继续向下执行
    • break关键字可在匹配的case执行后,跳出整个结构
    • 适用于等值判断
    public class TestSwitch{
    	
    	public static void main(String[] args){
    		/*
    			每日食谱
    			
    			星期一:湘菜
    			星期二:川菜
    			星期三:粤菜
    			星期四:浙菜
    			星期五:川菜
    			星期六:川菜
    			星期日:徽菜
    		*/
    		
    		int weekDay = 6;
    		
    		switch(weekDay){
    			
    			case 1:
    				System.out.println("湘菜");
    				break;
    			case 2:
    			case 5:	
    			case 6:
    				System.out.println("川菜");
    				break;
    			case 3:
    				System.out.println("粤菜");
    				break;
    			case 4:
    				System.out.println("浙菜");
    				break;	
    			case 7:
    				System.out.println("徽菜");
    				break;
    			default:
    				System.out.println("请输入1-7");
    				break;
    				
    		}
    		
    		System.out.println("程序结束...");
    	}
    }
    

    局部变量

    概念:声明在方法内部的变量,必须先赋值再使用

    作用范围:定义行开始到所在的代码块结束

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

    public class TestLocalVariable{
    	
    	public static void main(String[] args){
    		
    		int a = 10;//局部变量的声明,必须先赋值再使用
    		
    		System.out.println(a);
    		
    		if(1 == 1){
    			
    			int b = 20;//局部变量超出作用范围之后,会立刻回收
    			
    			System.out.println(b);
    		}
    		//System.out.println(b);
    		
    		//short a = 30;
    		
    	} 
    }
    
  • 相关阅读:
    链表的相关算法及应用(二)
    Hexo博客同时托管到github和coding
    Valine评论出现Code 403:访问被API域名白名单拒绝,请检查你的安全域名设置
    记一次Python爬虫入门
    基于SSM的个人博客
    JSTL和EL表达式遍历List数组
    bootstrap快速开发响应式页面
    标签随机文字颜色和字体大小的实现方法
    安卓Service和Broadcast实现简单的音乐播放器
    ListView设置OnItemClickListener点击没有反应
  • 原文地址:https://www.cnblogs.com/MRASdoubleZ/p/14361047.html
Copyright © 2020-2023  润新知