首页 > 其他分享 >分支

分支

时间:2024-08-31 18:47:30浏览次数:2  
标签:case System break println 分支 public out

分支控制有三种:单分支,双分支,多分支。

单分支

基本语法:

if (条件表达式){
    执行代码块;
}

程序示例:

import java.util.Scanner;

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。");
        }
    }
}

双分支

基本语法:

if (条件表达式) {
    执行代码块1;
} else {
    执行代码块2;
}

程序示例:

import java.util.Scanner;

public class If02 {
    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("你还未成年。");
        }
    }
}

多分支

基本语法:

if (条件表达式1) {
    执行代码块1;
} 
else if (条件表达式2) {
    执行代码块2;
}
......
else{
    执行代码块n;
}

多分支最后可以没有 else

如果没有 else,当前面的所有 if 都不成立时,将什么都不执行。

switch

switch(表达式) 中的表达式数据类型要么和 case 常量中常量的类型一致,要么是可以自动类型转换为可以进行比较的类型。

switch(表达式) 中的表达式的值的类型必须是以下类型中的一种:byte,short,int,char,enum(JKD 5 之后支持),String(JDK 7 之后支持)。

case 常量中的常量可以是常量表达式,即值为常量的表达式,如 'b' + 1。case 标签还可以是字符串或枚举类型常量。

default 可以省略。

default 的位置随意。

多个 case 中的值不允许重复。

case 后面如果没有 break 将会穿透。如果多个 case 的语句体相同,则可以利用穿透来简化代码。

程序示例:

public static void main(String[] args) {
    char c = 'a';
    switch (c) {
        case 10:
            System.out.println("ok1");
            break;
        case 97: // 和此处匹配上
            System.out.println("ok2");      // 输出 ok2
            break;
        default:
            System.out.println("ok3");
            break;
    }
}

程序示例:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        // 从键盘输入学生成绩,如果学生成绩大于 60 则输出合格,否则输出不合格
        // 要求用 switch 完成
        System.out.println("输入学生成绩:");
        Scanner sc = new Scanner(System.in);
        int score = sc.nextInt();
        switch (score / 60) {
            case 0:
                System.out.println("不合格");
                break;
            case 1:
                System.out.println("合格");
                break;
        }
    }
}

程序示例:

// 这是从 JDK12 开始引入的新特性,用花括号括起来的语句可以省略 break,因为不会发生穿透现象。
public class test {
    public static void main(String[] args) {
        int number = 1;
        switch (number) {
            case 1 -> {
                System.out.println("一");
                break;
            }
            case 2 -> {
                System.out.println("二");
                break;
            }
            case 3 -> {
                System.out.println("三");
                break;
            }
            default -> {
                System.out.println("没有这种选项");
                break;
            }
        }
    }
}

省略 break:

public class test {
    public static void main(String[] args) {
        int number = 1;
        switch (number) {
            case 1 -> {
                System.out.println("一");
            }
            case 2 -> {
                System.out.println("二");
            }
            case 3 -> {
                System.out.println("三");
            }
            default -> {
                System.out.println("没有这种选项");
            }
        }
    }
}

用花括号括起来的语句块只有一条语句时,可以省略花括号:

// 用花括号括起来的语句块只有一条语句时,可以省略花括号
public class test {
    public static void main(String[] args) {
        int number = 1;
        switch (number) {
            case 1 -> System.out.println("一");
            case 2 -> System.out.println("二");
            case 3 -> System.out.println("三");
            default -> System.out.println("没有这种选项");
        }
    }
}

如果多个 case 的语句体相同,则可以利用穿透来简化代码。未简化的代码:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入星期数:");
        int number = sc.nextInt();
        switch (number) {
            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;
            default:
                System.out.println("输入错误");
                break;
        }
    }
}

利用 case 穿透进行简化:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入星期数:");
        int number = sc.nextInt();
        switch (number) {
            case 1:
            case 2:
            case 3:
            case 4:
            case 5:
                System.out.println("工作日");
                break;
            case 6:
            case 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }
}

进一步简化:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入星期数:");
        int number = sc.nextInt();
        switch (number) {
            case 1, 2, 3, 4, 5:
                System.out.println("工作日");
                break;
            case 6, 7:
                System.out.println("休息日");
                break;
            default:
                System.out.println("输入错误");
                break;
        }
    }
}

更进一步简化:

import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入星期数:");
        int number = sc.nextInt();
        switch (number) {
            case 1, 2, 3, 4, 5 -> System.out.println("工作日");
            case 6, 7 -> System.out.println("休息日");
            default -> System.out.println("输入错误");
        }
    }
}

与所有表达式类似,switch 表达式也有一个值,可以将 switch 的结果赋值给一个变量。

程序示例:

import java.util.Scanner;

public class SwitchDemo {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个季节:");
        String season = sc.next();
        int numLetters = switch (season) {
            case "spring", "summer", "winter" -> 6;
            case "fall" -> 4;
            default -> -1;
        };
        System.out.println(numLetters);
    }
}

执行结果:

请输入一个季节:fall
4

switch 表达式中使用枚举常量时,不需要为各个标签提供枚举名,这可以从 switch 值推导得出。

程序示例:

public class SwitchDemo2 {
    public static void main(String[] args) {
        enum Size {
            SMALL, MEDIUM, LARGE, EXTRA_LARGE
        }
        ;
        Size itemSize = Size.SMALL;
        String label = switch (itemSize) {
            case SMALL -> "S"; // no need to use Size.SMALL
            case MEDIUM -> "M";
            case LARGE -> "L";
            case EXTRA_LARGE -> "XL";
        }; // 在这个例子中,完全可以省略 default, 因为每一个可能的值都有相应的一个 case
        System.out.println(label);  // S
    }
}

使用整数或 String 操作数的 switch 表达式必须有一个 default,因为不论操作数值是什么,这个表达式都必须生成一个值。

如果操作数为 null,会抛出一个 NullPointerException。

标签:case,System,break,println,分支,public,out
From: https://www.cnblogs.com/Chengkai730/p/18390598

相关文章

  • 阿里云虚假分支剖析
    阿里云虚假分支剖析记得加入我们的学习群:961566389获取最新资讯1.a^2+b^2>=ab形式……case18432:P=(fe=(Y=(Oo=23)*Oo)+(P=(qe=12>>qe)*qe))>=(Y=Oo*qe),L=w[m=L],j.push(L),li=25664;break;case......
  • tortoisegit(了解git图形界面)/ssh/git分支/版本
    下载–TortoiseGit–Git的WindowsShell接口https://tortoisegit.org/download/安装:一路下一步安装即可(有下载语言包一样安装)操作了解1.克隆远程仓库2.上传到远程仓库结果查看3.tortoisegit(初始化)和初始化建立远程连接1.创建文件夹2.成功后会多一个(.git文件......
  • 本地分支推送到githud分支上操作过程:
    一、准备阶段:配置SSH密钥配置Git用户信息:gitconfig--globaluser.name"123456"gitconfig--globaluser.email"[email protected]"gitconfig--list生成SSH密钥:ssh-keygen-trsa-C"[email protected]"当被询问保存位置时,按回车键接受默认位置。接着输入密码两次。......
  • IDEA中使用git合并分支的过程报错:cant checkout because of unmerged files
    使用idea的git插件控制代码分支合并时,由于操作不当,报错了,控制台报错如下:cantcheckoutbecauseofunmergedfiles,youhavetoresolveallmergeconflictsbeforecheckout.仔细回想报错的起因,经过大概是这样的:首先,远程仓库里面的代码版本是很老了,而本地的代码版......
  • gitlab上dev分支的代码更新覆盖到test分支
    在GitLab上,如果你想要将dev分支上的代码更新覆盖到test分支,可以通过以下步骤进行:确保你的本地仓库是最新的:使用gitfetch命令从远程仓库获取最新的分支列表和提交。gitfetchorigin切换到test分支:切换到你想要更新的分支。gitcheckouttest合并dev分支:将dev分支......
  • 分支和循环以及猜数字游戏的实现
    分支和循环以及猜数字游戏的实现目录随机书生成randsrandtime设置随机数的范围猜数字游戏的实现随机书生成randC语言中有一个函数叫rand函数,它可以生成随机数,代码格式如下:intrand(void)rand函数会返回一个伪随机数,这个随机数的范围是在0~RAND_MAX之间,这个RAND_MA......
  • 银行总分支文件分发系统:在安全与效率之间找到平衡!
    银行的组织结构通常根据其规模、业务范围和地域分布而有所不同,但一般会包括以下几个层级:总行-区域总部或分行-分行-支行-业务中心或服务中心-国际分支机构-附属机构或子公司。  在日常中,存在总分支文件分发的业务场景,文件类型通常包含但不限于以下几种:财务报表:包括资产负债......
  • 致命错误:您当前未在任何分支上操作" - 分支管理指南与解决方案
    fatal:youarenotcurrentlyonabranch在Git中,fatal:youarenotcurrentlyonabranch 是一个常见的错误提示,通常发生在你尝试进行提交(commit)或推送(push)操作时,但你当前并未处于任何分支(branch)上。理解错误原因Git是一个分布式版本控制系统,它允许多个开发者同时在同一......
  • 分支与循环(上)
    C语⾔是结构化的程序设计语⾔,这⾥的结构指的是顺序结构、选择结构、循环结构,C语⾔是能够实现这三种结构的,其实我们如果仔细分析,我们⽇常所⻅的事情都可以拆分为这三种结构或者这三种结构的组合。我们可以使⽤if、switch实现分⽀结构,使用 for、while、dowhile实现循......
  • C语言:if&switch分支语句
    目录前言一、if语句1.1if1.2else1.3嵌套if1.4悬空else问题二、switch语句2.1 if语句和switch语句的对比2.2 switch语句中的default前言   C语⾔是结构化的程序设计语言,这里的结构指的是顺序结构、选择结构、循环结构,C语言是能够实现这三种结构的,其实我......