Timon Gehr:

Are you aware that the following works?

void main(){
    import std.stdio;
    enum Foo{foo1,foo2}
    int[5] data;
    Foo f;
    Lswitch:switch(f){
    case Foo.foo1:
        foreach (x;data)
            if(x==10)
                break Lswitch;
        writeln("10 not found.");
        data[0] = 10; // Put the missing 10.
        break;

    default:
        break;
    }
}

Of course I wasn't aware of that :-) I have never seen that in docs, or D code. It's an acceptable solution, better than the goto.

Thank you,
bearophile

Reply via email to