KennyTM~ wrote: > On Nov 17, 09 01:48, Bill Baxter wrote: >> On Mon, Nov 16, 2009 at 9:30 AM, KennyTM~<[email protected]> wrote: >>> On Nov 17, 09 01:12, Bill Baxter wrote: >>>> >>>> On Mon, Nov 16, 2009 at 8:24 AM, Andrei Alexandrescu >>>> <[email protected]> wrote: >>>>> >>>>> Walter Bright wrote: >>>>>> >>>>>> Andrei Alexandrescu wrote: >>>>>>> >>>>>>> I was hoping the lesson learned would be to fix switch as was >>>>>>> suggested. >>>>>> >>>>>> I checked, because it wasn't written in the way I usually write >>>>>> things, >>>>>> and sure enough it wasn't code I wrote :-) >>>>>> >>>>>> From the changelog for D 0.129: "Incorporated Ben Hinkle's new >>>>>> std.format >>>>>> which can print general arrays." >>>>>> >>>>>> http://www.digitalmars.com/d/1.0/changelog1.html#new0129 >>>>> >>>>> So people are liable to make the mistake. >>>>> >>>>> Andrei >>>>> >>>> >>>> What about when you want to fall through to a multiple label? Or a >>>> range >>>> label? >>>> >>>> case 0: >>>> // do stuff >>>> goto case ??; >>>> case 1: .. case 9: >>>> // do more stuff >>>> goto case ??; >>>> case 10,20,30: >>>> // still more stuff >>>> >>>> The obvious answer would seem to be just "pick any one". >>>> I just bring it up because I haven't seen that ... uh case ... >>>> mentioned by anyone. >>>> >>>> --bb >>> >>> Since >>> >>> case a: >>> .. >>> case b: >>> >>> expands to >>> >>> case a: >>> case a+1: >>> case a+2: >>> // .... >>> case b: >>> >>> and >>> >>> case a,b,c,d: >>> >>> expands to >>> >>> case a: >>> case b: >>> case c: >>> case d: >>> >>> Your speculation is correct. Please note that the "goto case X;" >>> statement >>> works *now*, so there's no need to guess its behavior. >> >> Seriously? Didn't realize. >> >> So valid end-of-case statements would be: >> break; >> return; >> continue; >> goto *; >> goto case *; > > throw ...; > assert(...); >
you can call functions which do these...
