Nobody mentioned the use of goto with switch-case.

  http://ddili.org/ders/d.en/switch_case.html

goto can appear in three ways under case sections:

* 'goto case' causes the execution to continue to the next case.

* 'goto default' causes the execution to continue to the default section.

* 'goto expression' causes the execution to continue to the case that matches that expression.

The following program demonstrates these three uses by taking advantage of a foreach loop:

import std.stdio;

void main()
{
    foreach (value; [ 1, 2, 3, 10, 20 ]) {
        writefln("--- value: %s ---", value);

        switch (value) {

        case 1:
            writeln("case 1");
            goto case;

        case 2:
            writeln("case 2");
            goto case 10;

        case 3:
            writeln("case 3");
            goto default;

        case 10:
            writeln("case 10");
            break;

        default:
            writeln("default");
            break;
        }
    }
}

The output:

--- value: 1 ---
case 1
case 2
case 10
--- value: 2 ---
case 2
case 10
--- value: 3 ---
case 3
default
--- value: 10 ---
case 10
--- value: 20 ---
default

Ali

Reply via email to