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

相关文章
|
8月前
|
Java
【JAVASE】顺序和选择结构 上
【JAVASE】顺序和选择结构
|
8月前
|
Java
【JAVASE】循环结构 下
【JAVASE】循环结构
|
8月前
|
Java
【JAVASE】循环结构 上
【JAVASE】循环结构
|
8月前
|
机器学习/深度学习 Java C语言
【JAVASE】循环结构 中
【JAVASE】循环结构
|
6天前
|
Java 测试技术 C语言
【JavaSE】逻辑控制:顺序、分支和循环结构
【JavaSE】逻辑控制:顺序、分支和循环结构
33 0
|
10月前
|
Java 编译器
【JavaSE专栏8】运算符、表达式和语句
【JavaSE专栏8】运算符、表达式和语句
|
10月前
|
算法 Java 开发者
【JavaSE专栏10】Java的顺序结构、选择结构和循环结构
【JavaSE专栏10】Java的顺序结构、选择结构和循环结构
|
Java Linux C语言
【JavaSE】逻辑控制语句
顺序结构比较简单,即程序按照代码书写的顺序一行一行执行下去。
【Java|基础篇】逻辑控制-顺序结构、分支结构和循环结构
顺序结构是指代码按照从上往下的顺序依次执行,分支结构是选择语句是条件成立时,才会执行的语句.共有三种.分为是if ,if else和if else if else
|
Java
JavaSE --- 顺序、分支结构
JavaSE --- 顺序、分支结构
73 0