Also the code throws if just hit enter (it means you enter no number). So the code is still bad.

I prefer code like this:


void main() {
    import std.stdio, std.algorithm, std.string, std.array,
           std.conv;

    int[] even, odd;

    while (true) {
        "Enter a number (or just enter to exit): ".write;
        immutable txt = readln.strip;
        if (txt.empty)
            break;

        try {
            immutable input = txt.to!int;

            if (input % 2 == 0) {
                "even".writeln;
                even ~= input;
            } else {
                "odd".writeln;
                odd ~= input;
            }

        } catch (ConvException e) {
            "Not a number.".writeln;
            continue;
        }
    }

    odd.sort().writeln;
    even.sort().writeln;
}

Reply via email to