是否有任何语言定义非标准控制流程语句?

时间:2014-01-09 20:31:07

标签: loops conditional control-flow

我见过的所有编程语言都有类似的条件语句和循环语句:if语句,switch语句在很多语言中共享(奇怪的Python没有switch声明。循环相同:forin)和(dowhile循环由许多语言使用。

让我想知道:是否有任何语言定义其他条件语句或循环语句(基于新颖的想法,而不仅仅是重命名的if)?

我能想到三元运算符? :,但我很好奇是否有任何语言以条件方式/循环方式与标准方式不同。

1 个答案:

答案 0 :(得分:0)

Python可能没有内置的switch语句,但你仍然可以模拟一个。

switch = {1: func1, 2: func2, 3: func3}  # case statements
switch.get(switchvar, default)()  # default is used if the cases are not matched

这里有一些你可以用C ++做的有趣的事情(偶尔会有用):

// default
template <int i> void int_switch()
{
    std::cout << i << '\n';
}

// case 1
template<> void int_switch<1>()
{
    std::cout << "one\n";
}

// case 2
template<> void int_switch<2>()
{
    std::cout << "two\n";
}

const int switch_var = 3;
int_switch<switch_var>(); // Outputs "3\n"

当然,这仅在模板参数是常量表达式时有效,因此使用const int而不仅仅是int