【JAVASE】顺序和选择结构 下

简介: 【JAVASE】顺序和选择结构

  • 悬垂 else 问题
 public static void main(String[] args) {
        int x = 10;
        int y = 10;
        if (x == 20)
            if (y == 10)
                System.out.println("aaa");
        else
            System.out.println("bbb");
}

🍤 运行结果:


d11b095d1f9352a72ce99ac2bf8a3da7_eab5ae9cfe4c48c089d55a8031e837fe.png


为什么什么都没有打印?


首先if / else 语句中可以不加大括号,当不加{}时,他只控制下面的一条语句,要控制多行,必须加上大括号。

其次就是 else 是和最接近的 if 匹配,并不是和谁对齐就与它匹配。


2.2 switch 语句

基本语法:


switch(表达式){
  case 常量值1:{
    语句1;
    [break;]
  }
  case 常量值2:{
    语句2;
    [break;]
  }
  ...
  default:{
    ...;//内容都不满足时执行语句
    [break;]
  }
}

执行流程:


  1. 先计算表达式的值
  2. 和case依次比较,一旦有响应的匹配就执行该项下的语句,直到遇到break时结束
  3. 当表达式的值没有与所列项匹配时,执行default


实例:根据 day 的值输出星期


public static void main(String[] args) {
        int day = 6;
        switch(day) {
            case 1:
                System.out.println("星期一");
                break;//遇到break停止,跳出switch语句
            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:
            case 7:
                System.out.println("周末");
                break;
            default:
                System.out.println("输入有误");
                break;
        }
}

🍤 运行结果:


ca42a9d401ba957fa3271feb128ab064_bad1a55aa4454184abffc06b12a7b737.png


注:


  • 多个case后的常量值不可以重复
  • switch的括号内只能是以下类型的表达式:

基本类型:byte、char、short、int,不能是long、float、double、boolean类型;

引用类型:String常量串、枚举类型

  • break 不要遗漏,否则会失去 “多分支选择” 的效果
  • switch 不能表达复杂的条件
  • switch 虽然支持嵌套,但是很丑,一般不推荐,毕竟这是一个看脸的世界~

使用错误类型

public static void main(String[] args) {
        double num=1.0;
        switch(num) {
            case 1.0:
                System.out.println("hehe");
                break;
            case 2.0:
                System.out.println("haha");
                break;
        }
}

🍤 编译出错:


3c8670ca1fbe03ff2b635c906a6f887e_703baf91723942059c8d689118671654.png


遗漏break


public static void main(String[] args) {
        int day = 1;
        switch(day) {
            case 1:
                System.out.println("星期一");
                // break;
            case 2:
                System.out.println("星期二");
                break;
        }
}

🍤 运行结果:


228cbda1e1f07f546e47f0987ebcd4a7_db58d31674de4c398dc45d416f6e3091.png


不能表达复杂条件


// 例如: 如果 num 的值在 10 到 20 之间, 就打印 hehe
// 这样的代码使用 if 很容易表达, 但是使用 switch 无法表示
if (num > 10 && num < 20) {
  System.out.println("hehe");
}

相关文章
【JAVASE】顺序和选择结构 上
【JAVASE】顺序和选择结构
|
9月前
|
存储 Java C#
选择结构程序综合举例
选择结构程序综合举例
72 1
|
Java
Java的流程控制(选择结构语句 if ~ switch &循环结构语句dowhile ~ for)
程序执行的控制流程分为三种,也称为三种结构,分别是:顺序结构、和循环结构。 顺序结构指的是程序执行按照代码的编写顺序,依次从上往下开始执行,直到程序结束。程序的执行默认是顺序执行的
151 1
|
9月前
|
Java 数据安全/隐私保护
Java中的选择结构语句详解与实战应用
Java中的选择结构语句详解与实战应用
90 2
|
9月前
|
Python
用if语句处理选择结构举例
在编程中,选择结构是一种根据特定条件来决定执行哪段代码的结构。而if语句则是实现选择结构的一种常用方式。通过if语句,我们可以根据条件的真假来执行不同的代码块。下面将通过几个示例来展示如何使用if语句处理选择结构。
57 0
|
9月前
|
Java 测试技术 C语言
【JavaSE】逻辑控制:顺序、分支和循环结构
【JavaSE】逻辑控制:顺序、分支和循环结构
87 0
|
9月前
|
Java
LeetCode题解-合并K个有序数组-Java
合并K个有序数组-Java
153 0
|
存储 安全 Java
【JavaSE】String类的重点语法知识汇总
【JavaSE】String类的重点语法知识汇总
|
C语言 Python
Python顺序结果、选择结构、循环结构
Python顺序结果、选择结构、循环结构
|
算法 Java 开发者
【JavaSE专栏10】Java的顺序结构、选择结构和循环结构
【JavaSE专栏10】Java的顺序结构、选择结构和循环结构
102 0

热门文章

最新文章