Cog
  • 首页
  • 导论
    • 脚本
    • 指令
  • 配方
    • 物品
    • 标签
    • 原版配方修改
    • 模组配方修改
    • 通用配方修改
    • 配方材料替换
  • ZenCode
    • 数据类型
    • 运算符
    • if
    • switch
    • 循环
    • 数组
    • List
    • 映射
    • 数学函数
    • 函数
    • lambda 表达式
    • 预处理器
    • OOP
      • 自定义类
      • 拓展类
      • 空类型安全
      • 运算符重载
      • 泛型
    • 变量代理
  • 高级运用
    • Tooltip
    • 属性修改
    • 物品条件
    • 物品转换器
    • 配方函数
    • 事件
    • 全局战利品修饰器
      • 战利品修饰器
      • 方块掉落修改
      • 实体掉落修改
      • 战利品修饰器管理器
  • ContentTweaker
    • 前言
    • 资源文件
    • 物品
    • 方块
    • 流体
    • 创造标签
    • 高级运用
由 GitBook 提供支持
在本页

这有帮助吗?

  1. ZenCode

switch

switch-case 是一种特殊的条件语句,用于给程序设置分支。

基本格式:

switch(expression) { // 依次匹配 expression 的结果和哪一个 case 相同,并执行该 case 下的语句
    case a: // a 必须是字面值,不能是变量,且只允许 byte int short char 和 string
        // do something
        break; // 用于退出 switch 程序块
    case b:
        // [statement]
        break;
    // 可以写无限个 case
    default: // 如果都不匹配,则执行这个,default 必须放到 switch-case 程序块最下面
        // do something
}

Multi-case

当程序匹配到 case 后,会执行 switch 块内该 case 下(和其余 case)的所有内容。所以大部分分支最后面都需要 break 来退出 switch-case 程序块。比如如下的程序:

switch(character) {
    case "A": 
        println("a");
    case "B":
        println("b");
    case "D":
        println("d");
    case "E":
        println("e");
    default:
        println("default");
}

如果 character 是 B 的话,则会依次打印 b d e 和 default。这往往是我们不想看见的,所以记得每个分支最后加上 break!

但你也可以稍稍改一下下...

switch(expression) { // 依次匹配 expression 的结果和哪一个 case 相同,并执行该 case 下的语句
    case a: 
        // do something
        break;
    case b:
    case c: // 当 expression 为 b 或 c 时执行下面的语句
        // [statement]
        break;
    default:
        // do something
}
var grade as string = "B";

switch(grade) {
    case "A": 
        println("excellent");
        break;
    case "B":
    case "C": 
        println("good");
        break;
    case "D":
        println("pass");
        break;
    case "E":
        println("fail");
        break;
    default:
        println("unknown grade");
}
上一页if下一页循环

最后更新于4年前

这有帮助吗?