java基础——控制语句(选择语句)

🏡个人主页 :@ 守夜人st
🚀系列专栏:Java
…持续更新中敬请关注…
🙉博主简介:软件工程专业,在校学生,写博客是为了总结回顾一些所学知识点

✈️推荐一款模拟面试,刷题,从基础走向大场面试👉 开启你的刷题之路吧

活动地址:CSDN21天学习挑战赛

控制语句

控制语句的出现可以让我们的程序具有逻辑性和条理性。


控制语句包括哪几类?
选择语句
循环语句
跳转语句

选择语句:也可以叫做分支语句

if语句

if 语句的语法格式:

第一种写法:

if(布尔表达式){

Java语句;

}

注意:当分支中只有一个大括号{}时,{}可以省略,但是为了代码的可读性,不建议省略。

第二种写法:

if(布尔表达式){      //分支1
  Java语句;
}else{                          //分支2
  Java语句;
}

注意:对于if语句来说,在任何情况下只能有一个分支执行,不可能存在两个或多个分支执行,,只要有一个分支执行了,if语句也就结束了。

第三种写法:

if(布尔表达式1{
  Java语句;
}else if(布尔表达式2{
  Java语句;
}else if(布尔表达式3{
  Java语句;
}、、、

布尔表达式结果为true才能执行,且要按照从上至下的顺序执行,结果为false则跳到下一个分支判断。

第四种写法:

if(布尔表达式1{
  Java语句;
}else if(布尔表达式2{
  Java语句;
}else if(布尔表达式3{
  Java语句;
}、、、else{
  Java语句;
}

分析if语句的时候可以由外至内,不管语句如何嵌套,由外至内才能分析清楚代码块所实现的功能。

案例分析

package com.shouyerenst;

import java.util.Scanner;

public class IfTest {
    /*
      业务要求:
      1.从键盘上键入接收一个人的年龄
      2.年龄要求为[0 - 150],其他值表示非法,需要提示非法信息
      3.根据人的年龄来动态判断这个人属于生命的那个阶段?
      [0-5]婴幼儿
      [6-10]少儿
      [11-18]少年
      [19-35]青年
      [36-55]中年
      [56-150]老年
      4.请使用if语句完成上述业务逻辑
     */
    public static void main(String[] args) {
        Scanner s = new Scanner(System.in);
    
        System.out.print("请输入年龄:");
    
        int age = s.nextInt();
        //初始代码块
        /* if(age < 0 || age > 150){
         System.out.println("对不起,您输入的年龄不合法");
         }else {
         //System.out.println("输入年龄合法");
         if (age <= 5){
         System.out.println("婴幼儿");
         }else if (age <=10){
         System.out.println("少儿");
         }else if (age <= 18){
         System.out.println("少年");
         }else if (age <= 35){
         System.out.println("青年");
         }else if (age <= 55){
         System.out.println("中年");
         }else {
         System.out.println("老年");
         }
         }*/
        
        //初次改良
        /*if (age < 0 || age > 150) {
            System.out.println("对不起,您输入的年龄不合法");
        } else if (age <= 5) {
            System.out.println("婴幼儿");
        } else if (age <= 10) {
            System.out.println("少儿");
        } else if (age <= 18) {
            System.out.println("少年");
        } else if (age <= 35) {
            System.out.println("青年");
        } else if (age <= 55) {
            System.out.println("中年");
        } else {
            System.out.println("老年");
        }*/
        
        //再次改良
        String str = "老年";
        if (age < 0 || age > 150) {
            System.out.println("对不起,您输入的年龄不合法");
            return;
        } else if (age <= 5) {
            str = "婴幼儿";
        } else if (age <= 10) {
            str = "少儿";
        } else if (age <= 18) {
            str = "少年";
        } else if (age <= 35) {
            str = "青年";
        } else if (age <= 55) {
            str = "中年";
        } else {
            str = "老年";
        }
        
        System.out.println(str);
    }
}

要点:

  • break;语句不是必须的,default语句也不是必须的。
  • switch语句支持String和int类型,JDK8之前不支持String。
  • switch语句执行原理:那”值“与”值1“比较如果相同,则执行该分支下的Java语句,遇到break;语句,switch语句结束。
  • 如果”值“与”值1“不相等,则会继续向下与”值2“比较,遇到break语句switch就结束了
  • 如果一个分支被执行但是没有break语句,,就会继续执行下一个分支,直到遇到break语句,这也就是case穿透现象
  • 所有的case都没有匹配成功,最后的default分支会被执行。

switch语句

语法格式:

switch(){
  case1:
  java语句;
  、、、
  break;
  }case2:
  java语句;
  、、、
  break;
  }case3:
  java语句;
  、、、
  break;
  default:
  java语句;
  }

案例分析:

package com.shouyerenst;

import java.util.Scanner;

        /*具体案例
        1.系统接收一个学生的考试成绩,根据考试成绩输出对应等级
        2.等级:
        优:[90——100]
        良:[80——90)
        中:[70——80)
        及格:[60——70)
        不及格:[0——60)
        要求成绩是一个合法的数字在[0——100]之间,可以带小数
        使用switch语句完成
        */
public class switchTest {
    public static void main(String[] args) {
        
        System.out.print("请输入学生成绩:");
        Scanner s = new Scanner(System.in);
        double score = s.nextDouble();
        
        if(score < 0 || score >= 100){
            System.out.println("您输入的成绩不合法");
            return;
        }
        
        int grade = (int) (score / 10);
        String str = "不及格";
        switch (grade){
            case 10: case 9:
                str = "优";
                break;
            case 8:
                str = "良";
                break;
            case 7:
                str = "中";
                break;
            case 6:
                str = "及格";
        }
        System.out.println("该学生的成绩为:"+str);
        
    }
}

算法对程序员来说及其重要,语言和开发平台不断变化,但是万变不离其宗的是那些算法和理论,刷算法最最最直白的原因就是找一个好的工作,那刷题一定是必不可少的
现在算法刷题平台还是蛮多的,给大家介绍一个我认为与大厂关联最深的平台——牛客网 跳转链接

在这里插入图片描述

感觉不错的话,动手点个赞吧!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

守夜人st

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值