Derek Parnell wrote:
On Tue, 07 Jul 2009 14:57:39 +1200, Tim Matthews wrote:

Switch is really a neat form of comparison and gotos but with actual labels replaced with a case statement. A block statement is usually used to have more than one case statement valid. This is valid code but uncomment the next line and it becomes invalid:

module test;

import tango.io.Stdout;

void main(char[][] args)
{
   if (args.length > 1)
     switch (args[1])
       case "1": Stdout("1"); break;
       //case "2": Stdout("2"); break; //uncomment and error

}

Actually that is not valid code. The first "break;" breaks the program.

yeah I forgot to remove the break as it was no longer part of the switch statement.


Ok, why on earth would a one-case switch be useful? And that still doesn't
help me understand why allowing other statement types in that position is a
good idea.



C compatibility. It's not really a problem to D. If there is a compiler that only accepted block statements for switch not many people would care that it doesn't conform to C spec because no one uses it like that anyway.

Reply via email to