首页 > 编程语言 >java流程控制-分支控制

java流程控制-分支控制

时间:2023-12-08 17:38:03浏览次数:20  
标签:case 控制 java 流程 System sc println 分支 out

免责声明:java基础资料均来自于韩顺平老师的《循序渐进学Java零基础》教案,具体视频内容可以去B站观看,这些资料仅用于学习交流,不得转载用于商业活动

1.分支控制

让程序有选择的去执行,分支控制有三种

单分支 if

双分支 if-else

多分支if-else if-...else

1.1 单分支 if

基本语法

if(条件表达式){

  执行代码块(可以有多条语句)

}

说明:当条件表达式为true时,就会执行{}的代码,如果为false,就不执行

特别说明:如果{}中只有一条语句则可以不用{},为了代码可读性,建议加上{}

public class If01 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入你的年龄:");
        int age=sc.nextInt();
        if(age>=18){
            System.out.println("你的年龄大于或等于18岁,可以进入网吧");
        }
    }
}

1.2 双分支 if-else

 

public class If01 {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入你的年龄:");
        int age=sc.nextInt();
        if(age>=18){
            System.out.println("你的年龄大于或等于18岁,可以进入网吧");
        }else{
            System.out.println("你还是未成年,不能进入网吧");
        }
    }
}

1.3 多分支 if-else if...-else

 多分枝流程图

 1 public class If02 {
 2     public static void main(String[] args) {
 3         /*
 4          * 输入个人成绩
 5          * 成绩为(90-100)分时,输出 成绩优秀
 6          * 成绩为(80-89)分时,输出,成绩良好
 7          * 成绩为(70-79)分时,输出,成绩中等
 8          * 成绩为(60-69)分时,输出,成绩及格
 9          * 其他情况 输出 成绩不及格
10          * */
11 
12         Scanner sc=new Scanner(System.in);
13         System.out.print("请输入你的个人成绩(0-100):");
14         int score=sc.nextInt();
15         if(score>=0 && score<=100){
16             if(score>=90 && score<=100) {
17                 System.out.println("成绩优秀");
18             }else if(score>=80 && score<=89){
19                 System.out.println("成绩良好");
20             }else if(score>=70 && score<=79){
21                 System.out.println("成绩中等");
22             }else if(score>=60 && score<=69){
23                 System.out.println("成绩及格");
24             }else{
25                 System.out.println("成绩不及格");
26             }
27         }else{
28             System.out.println("个人成绩分数需要在0-100,请重新输入");
29         }
30     }
31 }

1.3 嵌套分支

在一个分支结构中有完整的嵌套了另一个完整的分支结构,里面的分支的结构称为内层分支,外面的分支结构称为外层分支。分支最好不要超过三层

基本语法:

public class If03 {
    public static void main(String[] args) {
        /*
        * 参加比赛。如果积分大于等于70可以进入世界赛
        * 否则提示:很抱歉,您的队伍没有参加世界上的资格。并且根据排名提示
        * 1 欢迎1号种子进入世界赛
        * 2 欢迎2号种子进入世界赛
        * 3 欢迎3号种子进入世界赛
        * 4 欢迎4号种子进入世界赛
        * 其他 很抱歉。输入错误
        * */
        Scanner sc=new Scanner(System.in);
        System.out.print("请输入您队伍的积分,查询是否有资格参加世界赛的资格:");
        int score=sc.nextInt();
        if(score>=70){
            System.out.print("请输入你队伍的排名:");
            int level=sc.nextInt();
            if(level==1){
                System.out.println("欢迎1号种子进入世界赛");
            }else if(level==2){
                System.out.println("欢迎2号种子进入世界赛");
            }else if(level==3){
                System.out.println("欢迎3号种子进入世界赛");
            }else if(level==4){
                System.out.println("欢迎4号种子进入世界赛");
            }else {
                System.out.println("很抱歉,排名输入错误!");
            }
        }else{
            System.out.println("很抱歉,您的队伍没有参加世界上的资格");
        }
    }
}

1.3 switch分支结构

基本语法:

 说明:

  1. swtich,关键字,表示switch分支
  2. 表达式对应一个具体的值
  3. case常量1:当表达式的值等于常量1,就执行语句块1
  4. break:表示退出switch
  5. 如果和case常量1匹配,就执行语句块1,如果没有匹配就继续匹配case常量2
  6. 如果都没有匹配商,执行default

 流程图:

 1 public class Switch01 {
 2     public static void main(String[] args) {
 3         /*参加世界赛,并且根据排名提示
 4          * 1 欢迎1号种子进入世界赛
 5          * 2 欢迎2号种子进入世界赛
 6          * 3 欢迎3号种子进入世界赛
 7          * 4 欢迎4号种子进入世界赛
 8          * 其他 很抱歉。您输入的排名不能进入世界赛
 9          * */
10         Scanner sc=new Scanner(System.in);
11         System.out.print("请输入您队伍的积分排名:");
12         int level=sc.nextInt();
13 
14         switch(level){
15             case 1:
16                 System.out.println("欢迎1号种子进入世界赛");
17                 break;
18             case 2:
19                 System.out.println("欢迎2号种子进入世界赛");
20                 break;
21             case 3:
22                 System.out.println("欢迎3号种子进入世界赛");
23                 break;
24             case 4:
25                 System.out.println("欢迎4号种子进入世界赛");
26                 break;
27             default:
28                 System.out.println("很抱歉,您输入的排名不能进入世界赛!");
29         }
30     }
31 }

注意事项:

  1. 表达式数据类型,应和case后的常量类型保持一直,或者可以自动转成可以相互比较的类型,比如输入的是字符,而常量是int
  2. switch(表达式)中表达式的返回值必须是(byte,short,int,char,enum[枚举],String)
  3. case子句中的值必须是常量,而不能是变量
  4. default子句是可选的,当没有匹配的case时,执行default
  5. break语句用来在执行完一个case分支后使程序跳出switch语句块;如果没有写break,程序会顺序执行到switch结尾,除非遇到break
 1 public class Switch02 {
 2     public static void main(String[] args) {
 3         //根据输入的月份打印季节,
 4         // 3,4,5春季 6,7,8 夏季 9 10 11 秋季 12,1,2冬季
 5         Scanner sc=new Scanner(System.in);
 6         System.out.print("请输入月份:");
 7         int month=sc.nextInt();
 8 
 9         switch(month){
10             case 3:
11             case 4:
12             case 5:
13                 System.out.println("这是春季");
14                 break;
15             case 6:
16             case 7:
17             case 8:
18                 System.out.println("这是夏季");
19                 break;
20             case 9:
21             case 10:
22             case 11:
23                 System.out.println("这是秋季");
24                 break;
25             case 12:
26             case 1:
27             case 2:
28                 System.out.println("这是冬季");
29                 break;
30             default:
31                 System.out.println("月份输入错误");
32         }
33     }
34 }

switch和if比较:

  1. 如果判断的具体数值不多,而且符合byte,short,int,char,enum[枚举],String这6种类型。虽然两个语句都可以使用,建议使用switch
  2. 其他情况:对区间判断,对结果为boolean类型判断,使用if。if的使用范围更广泛

 

标签:case,控制,java,流程,System,sc,println,分支,out
From: https://www.cnblogs.com/lgs-tech/p/17888648.html

相关文章

  • Java_02
    7-1邻接表存储实现图的深度优先遍历#include<bits/stdc++.h>usingnamespacestd;#defineMAXSIZE100inta[MAXSIZE]={0};//边表typedefstructAt{intt;//保存邻接点下标charwei;//储存权值structAt*next;//链域,指向下一个邻接点......
  • java 方法
    一、方法概述 二、方法定义和调用1、方法定义 2、方法调用3、带参方法定义 4、带参方法调用 5、形参和实参 6、带返回值方法的定义 7、带返回值方法的调用8、方法的注意事项 9、方法的通用格式 三、方法重载1、概述2、特点 四、方法......
  • 秦疆的Java课程笔记:64 面向对象 构造器详解
    类中的构造器也称为构造方法,世在进行创建对象的时候必须要调用的。并且构造器有以下两个特点必须和类的名字相同必须没有返回类型,也不能写void构造器必须掌握!一个类即使什么也没写,也会存在一个方法//写一个空的Person类=========================publicclassPer......
  • java.util.concurrent.RejectedExecutionException异常分析
    感谢:https://blog.csdn.net/wzy_1988/article/details/38922449核心池和最大池的大小graphTBA("提交新任务")-->G{"maximumPoolSize设置为<br/>无界值<br/>(例如:Integer.MAX_VALUE)"}G---|"无界值"|H["允许线程池适应任意数量的并发任务"]G---|"......
  • java使用Ffmpeg合成音频和视频
    1、Maven依赖<!--需要注意,javacv主要是一组API为主,还需要加入对应的实现--><dependency><groupId>org.bytedeco</groupId><artifactId>javacv</artifactId><version>1.5.6</version>&......
  • java-导出pdf
    前言:  纯代码画pdf格式<!--iTextPDF--><dependency><groupId>com.itextpdf</groupId><artifactId>itextpdf</artifactId><version>5.5.13.2</version></......
  • Java中<where>和<if>标签的组合使用
    在Java中,并没有<where>和<if>标签的组合使用。这两个标签不是Java编程语言或Java标准库的一部分,它们可能是你所使用的特定框架或库提供的自定义标签。如果你正在使用某个特定的Java框架或模板引擎(如MyBatis、Thymeleaf等),这些框架或引擎可能提供了自定义标签,使得在代码中使用类似于<......
  • 默认函数控制
    文章参考:爱编程的大丙(subingwen.cn)1.类与默认函数在C++中声明自定义的类,编译器会默认帮程序员生成一些未定义的成员函数,这些函数被称为默认函数,一共有六个:无参构造函数:创建类对象拷贝构造函数:拷贝类对象移动构造函数:拷贝类对象。拷贝赋值函数:类对象赋值。移动赋值......
  • Modbus转Profinet网关同时控制6台232 Modbus伺服
    Modbus转Profinet网关同时控制6台232Modbus伺服利用Modbus转Profinet网关(XD-MDPN100/XD-PNR200),我们可以实现对6台232Modbus伺服的控制。通过连接这些伺服设备到Modbus转Profinet网关,我们可以方便地将它们接入Profinet网络,并实现对它们的远程控制和监测。这就为我们提供了一个便......
  • JetBrains WebStorm 2023.3 (macOS, Linux, Windows) - 最智能的 JavaScript IDE
    JetBrainsWebStorm2023.3(macOS,Linux,Windows)-最智能的JavaScriptIDE请访问原文链接:https://sysin.org/blog/jb-webstorm-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsWebStorm-最智能的JavaScriptIDEWebStorm是一个适用于JavaSc......