Java流程控制-分支语句

Java流程控制-分支语句

Java的流程控制语句是用来控制程序执行流程的语句,它们决定了程序中各语句的执行顺序。通过流程控制语句,可以实现对程序执行路径的精确控制,使程序可以根据不同的条件执行不同的代码块,或者重复执行某些操作。

1.顺序控制语句:

这是最基本的结构,代码按照它们在源文件中的顺序从上往下执行。

2.分支语句:
if 分支
  • 语法:

    if(表达式){
    
    ...代码快……
    
    }
    
  • 注意:表达式结果必须是boolean类型

    true – --进入if分支

    false ----跳过分支,执型外面的语句

案例:

//案例一:如果成绩大于60就输出合格
			
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入您的成绩:")
			double score = sc.nextInt();
			
			if(score>60){
				
				System.out.println("您的成绩合格")
			}
			System.out.println("查询完毕")
			
			小结:条件成立进入if分支
				 不成立,不进入if分支

//	案例一: 人类的健康值在20-25的数值内为健康
				(健康值算法为:体重(Kg/ 身高(米)的平方)
			//输入体重和身高
			Scanner scan = new Scanner(System.in);
			System.out.println("请输入体重(Kg):");
			double weight = scan.nextDouble();
			System.out.println("请输入身高(M):");
			double height = scan.nextDouble();
			
			//计算健康值
			double health = weight/(height*height);
			
			//判断
			if(health>=20 && health<=25){
				System.out.println("小护士说:\"健康,请保持现有状态\"");
			}
			//小结:if可以判断区间
//案例三: 如果小明的语文成绩大于90并且数学成绩大于85,
			 他爸爸会给他买玩具,
			 或者数学100分,语文大于80分也会买玩具奖励
				 
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入语文成绩:");
			double chiScore = sc.nextDouble();	
			System.out.println("请输入数学成绩:");
			double mathScore = sc.nextDouble();
			
			//判断
			if((chiScore>90 && mathScore>85)||(chiScore>80 && mathScore == 100)){
				System.out.println("爸爸给他买玩具~");
			}
		
			//小结: if可以判断复杂的条件

if……else 分支
  • 语法:

    	if(表达式){
    
    	……代码块…… 
    
    }else{
    
    ……else代码块
    
    }
    
  • 注意:表达式结果必须是boolean类型

    ​ true -------->执行代码块

    ​ false -------->执行else代码块

案例:

//案例:如果小明Java考试成绩大于98分,老师就奖励他玩具车,否则老师就罚他抄写试卷
			Scanner scan = new Scanner(System.in);
			System.out.println("请输入考试成绩:");
			double score = scan.nextDouble();
			
			if(score > 98){
				System.out.println("奖励小明玩具车一辆");
			}else{
				System.out.println("小明,抄写试卷一遍");
			}
			
		小结:二选一的情况下使用if...else...
多重if分支语句
  • 语法:

    if(表达式){
    ……代码块1
    }else if{
        ……代码块2……
    }else if{
        ……代码块3……
    }else{
        else代码块……
    }
    
  • 注意:从上往下依次判断,哪个条件成立执行哪个代码块,

    ​ 全部不成立则执行else代码块

    ​ else{}语句按照需求可写可不写,不影响语法规范

    案例:

    //案例一:人类的健康值在
    			15-20的数值内为偏瘦
    			20-25的数值内为健康
    			25-30的数值内为偏胖
    			(健康值算法为:体重(Kg/ 身高(米)的平方)
    			//输入体重和身高
    			Scanner scan = new Scanner(System.in);
    			System.out.println("请输入体重(Kg):");
    			double weight = scan.nextDouble();
    			System.out.println("请输入身高(M):");
    			double height = scan.nextDouble();
    			
    			//计算健康值
    			double health = weight/(height*height);
    			
    			//判断
    			if(health>15 && health<=20){
    				System.out.println("偏瘦,注意增重");
    				
    			}else if(health>20 && health<=25){
    				System.out.println("健康,请保持现有状态");
    				
    			}else if(health>25 && health<=30){
    				System.out.println("偏胖,多做运动");
    				
    			}else{
    				System.out.println("健康值异常,请去医院详细检查");
    			}
    
    
    //案例二:通过键盘录入学生成绩
    			如果在90-100之间,则打印“A”,
    			否则如果在80-90之间,则打印“B”,
    			否则如果在70-80之间,则打印“C”
    			否则如果在60-70之间,则打印“D”
    			否则如果在 0-60之间,则打印“E”
    			否则打印“成绩异常”
    			Scanner scan = new Scanner(System.in);
    			System.out.println("请输入成绩:");
    			double score = scan.nextDouble();
    			
    			if(score >= 90 && score <= 100){
    				System.out.println("A");
    				
    			}else if(score >= 80 && score < 90){
    				System.out.println("B");
    				
    			}else if(score >= 70 && score < 80){
    				System.out.println("C");
    				
    			}else if(score >= 60 && score < 70){
    				System.out.println("D");
    				
    			}else if(score >=  0 && score < 60){
    				System.out.println("E");
    				
    			}else{
    				System.out.println("成绩异常");
    				
    			}
    			
    			//总结:在多选一的情况下可以选择多重if分支语句
    
    
if 嵌套
  • 规则:if 语句中嵌套着if语句

案例

//案例:学校举办运动会,跑进16秒的成绩有资格进入决赛,然后再根据性别分组男子组和女子组
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入比赛成绩:");
			double score = sc.nextDouble();
			//判断
			if(score > 0 && score <16){
                //进决赛
                System.out.println("请输入性别:");
                String sex = sc.next();
                if(sex.equals("男")){
                    System.out.println("进入男子组决赛!");
                }else(sex.equals("女")){
                    System.out.println("进入女子组决赛!");
                }else{
                    System.out.println("性别异常!");
                }
            }else if(score > 16){
			  //淘汰
            	System.out.println("成绩异常!");

            }else{
                System.out.println("成绩异常!");
            }
switch 分支语句的使用

switch分支主要是做值匹配分支

  • 语法:

    switch(表达式){
        case1 : 
            代码块1……
                break;
        case2 : 
            代码块2……
                break;
        case 值n : 
            代码块n……
                break;
        default : 
        ……default代码块……
            break;
    }
    
  • 理解:

    1. 表达式的值分别于值1,值2,值n进行匹配

      哪个值相匹配就执行对应的代码块

      如果都不匹配就执行default代码块

    2. default语句可根据需求写,可写可不写,不影响语法规则

    3. break 表示跳出当前switch分支语句

    案例:

    /**    案例:小西参加计算机编程大赛
    			如果获得第一名,将参加1个月马尔代夫旅游
    			如果获得第二名,将奖励苹果Pro笔记本电脑一部
    			如果获得第三名,将奖励移动硬盘一个
    			否则,小西没有任何奖励
    			*/
    			Scanner scan = new Scanner(System.in);
    			System.out.println("请输入比赛名次:");
    			String str = scan.next();
    			
    			switch(str){
    				case "第一名":
    					System.out.println("参加1个月马尔代夫旅游");
    				break;
    				case "第二名":
    					System.out.println("奖励苹果Pro笔记本电脑一部");
    				break;
    				case "第三名":
    					System.out.println("奖励移动硬盘一个");
    				break;
    				default:
    					System.out.println(",没有任何奖励");
    				break;
    			}
    
switch 分支的注意事项

注意:

  1. case 后面的值不可以重复

    1. default 语句可以省略
      3. break 语句可以省略,但是可能会造成switch渗透,如果多个值的执行是一样的可以用来简化代码
      4. default 语句的位置可以随意,switch分支最后去找default。建议就放在最后
      5. 表达式类型:byte,short,int ,char ,String(jdk1.7),枚举(jdk1.5)

switch分支底层判断逻辑:

switch底层是比较int类型的值是否相等

  1. byte--------->int 自动转型
  2. short ------->int 自动转型
  3. int ----------> int 直接使用
  4. char--------->int 获取字符的ascll码
  5. String ------>int 获取字符串的hashCode
  6. 枚举 -------->int 获取枚举类中对象的编号(从0开始,int类型)

Java循环语句

  • 34
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值