名称
switch - 开始多路分支分段。
用法
switch( : : ControlExpression : )
描述
switch开始一个允许通过多路分支来控制程序流的分段。 参数ControlExpression结果必须为一个整数值。 这个值决定了跳转到哪个标记。 每个case语句都包含一个整型常量。 如果case语句的整数常量等于参数ControlExpression的计算值,则程序从这儿运行。 另外,一个可选的默认语句可以被定义为一个switch分段中的最后一个跳转标记。 如果没有case常量与计算的ControlExpression值相匹配,则程序跳转到此default标记。
和编程语言C,C ++和C#一样,case语句也是一个跳转标记,和elseif不同,不是封闭分段的开始,而是在下一个case或default语句前自动跳出。
为了在运行一个case分支的代码行之后离开switch分段,就像在C或C ++中一样,必须在case分支的末尾插入一个break语句。 break语句可以在switch块的任何地方使用。 程序在endswitch语句后继续执行。 在分支结束时没有break语句,程序执行“落在”下面的case或默认分支语句。
如果需要在不同的情况下运行相同的语句,即对于多个控制值,具有不同常量表达式的几个case语句可以并排列出。
参数
ControlExpression (input_control) integer → (integer)
决定了在哪个case标记继续运行程序的整数表达式。
示例(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
结果
如果条件正确,则switch(作为算子)返回2(H_MSG_TRUE)。 否则,会引发异常并返回错误代码。
备选算子
if, elseif, else
See also
case, default, endswitch, if
模块
Foundation
HDevelop例程
switch_case.hdev Use switch/case statement for a multiway branch