使用右上角的选项卡切换到不同的编程语言。

使用右上角的选项卡切换到不同的编程语言。

使用右上角的选项卡切换到不同的编程语言。

使用右上角的选项卡切换到不同的编程语言。

switchswitchSwitchSwitchswitch分支(算子)

名称

switchswitchSwitchSwitchswitch — 开始多路分支块。

签名

switch( : : ControlExpression : )

Herror switch(const Hlong ControlExpression)

Herror T_switch(const Htuple ControlExpression)

void Switch(const HTuple& ControlExpression)

static void HOperatorSet.Switch(HTuple controlExpression)

def switch(control_expression: int) -> None

描述

switchswitchSwitchSwitchSwitchswitch 语句启动一个代码块,通过多路分支控制程序流程。参数 ControlExpressionControlExpressionControlExpressionControlExpressioncontrolExpressioncontrol_expression 必须返回整数值,该值决定执行跳转至哪个 casecaseCaseCaseCasecase 标签。每个 casecaseCaseCaseCasecase 语句包含一个整数常量。当 casecaseCaseCaseCasecase 语句的整数常量等于 ControlExpressionControlExpressionControlExpressionControlExpressioncontrolExpressioncontrol_expression 参数的计算结果时,程序执行将在此处继续。此外,可在 switchswitchSwitchSwitchSwitchswitch 块末尾定义可选的 defaultdefaultDefaultDefaultDefaultdefault 语句作为跳转标签。若所有 casecaseCaseCaseCasecase 常量均与 ControlExpressionControlExpressionControlExpressionControlExpressioncontrolExpressioncontrol_expression 计算值不匹配,程序执行将跳转至该 defaultdefaultDefaultDefaultDefaultdefault 标签。

与 C、C++ 和 C# 等编程语言类似,casecaseCaseCaseCasecase 语句是一个跳转标签——不同于 elseifelseifElseifElseifElseifelseif 语句——它并非封闭代码块的开头,该代码块不会在遇到下一个 casecaseCaseCaseCasecasedefaultdefaultDefaultDefaultDefaultdefault 语句时自动退出。

在 C 或 C++ 中,为使程序在执行完某个 casecaseCaseCaseCasecase 分支的代码行后离开 switchswitchSwitchSwitchSwitchswitch 块,必须在该 casecaseCaseCaseCasecase 分支末尾插入 breakbreakBreakBreakBreakbreak 语句。breakbreakBreakBreakBreakbreak 语句可在 switchswitchSwitchSwitchSwitchswitch 块内的任意位置使用,这将导致程序执行在闭合的 endswitchendswitchEndswitchEndswitchEndswitchendswitch 语句之后继续进行。若分支末尾未放置 breakbreakBreakBreakBreakbreak 语句,程序执行将“穿透”至后续 casecaseCaseCaseCasecase 分支或 defaultdefaultDefaultDefaultDefaultdefault 分支的语句。

若需在不同情况(即针对多个控制值)下执行相同的语句,可将多个包含不同常量表达式的 casecaseCaseCaseCasecase 语句依次排列。

参数

ControlExpressionControlExpressionControlExpressionControlExpressioncontrolExpressioncontrol_expression (输入控制)  integer HTupleintHTupleHtuple (integer) (int / long) (Hlong) (Hlong)

整数表达式,用于确定程序执行应继续至哪个情况标签。

示例(HDevelop)

TestStr := ''
for Index := 1 to 8 by 1
  TestStr := TestStr + '<'
  switch (Index)
  case 1:
    TestStr := TestStr + '1'
    break
  case 2:
    TestStr := TestStr + '2'
    * intentionally fall through to 3
  case 3:
    TestStr := TestStr + '3'
    * intentionally fall through to 4
  case 4:
    TestStr := TestStr + '4'
    break
  case 5:
  case 6:
    * common case branch for 5 and 5
    TestStr := TestStr + '56'
    break
  case 7:
    * continue for loop
    TestStr := TestStr + '7'
    continue
  default:
    TestStr := TestStr + 'd'
    break
  endswitch
  TestStr := TestStr + '>'
endfor

结果

如果条件正确, switchswitchSwitchSwitchSwitchswitch(作为算子)返回 2 ( H_MSG_TRUE )。否则,将抛出异常并返回错误代码。

替代

ififIfIfIfif, elseifelseifElseifElseifElseifelseif, elseelseElseElseElseelse

另见

casecaseCaseCaseCasecase, defaultdefaultDefaultDefaultDefaultdefault, endswitchendswitchEndswitchEndswitchEndswitchendswitch, ififIfIfIfif

模块

基础