Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.lang.c > #402647 > unrolled thread

Taming The Switch-Statement

Started byLawrence D’Oliveiro <ldo@nz.invalid>
First post2026-10-03 08:43 +0000
Last post2026-10-11 22:12 +0000
Articles 9 on this page of 189 — 20 participants

Back to article view | Back to comp.lang.c


Contents

  Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-03 08:43 +0000
    Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-03 11:24 +0100
      Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 22:15 +0000
    Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-03 14:22 +0200
    Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-03 18:02 +0200
      Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-04 00:24 +0800
      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-03 17:36 +0100
        Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-03 16:31 -0700
          Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-04 10:23 +0200
          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 12:18 +0100
          Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-04 16:20 +0200
            Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 21:34 +0000
              Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 16:04 -0700
        Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-04 16:18 +0200
          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 16:09 +0100
            Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-04 16:59 +0000
              Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 18:30 +0100
                Re: Taming The Switch-Statement Richard Harnden <richard.nospam@gmail.invalid> - 2026-10-04 19:49 +0100
                  Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 20:35 +0100
                    Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-04 22:27 +0200
                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-04 22:47 +0100
                  Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-04 21:59 +0000
        Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-04 23:38 +0000
          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-05 01:24 +0100
            Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 21:48 +0000
              Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 00:11 +0100
                Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 09:49 +0200
                  Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 11:12 +0200
                    Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 12:41 +0200
                      Re: Taming The Switch-Statement Richard Harnden <richard.nospam@gmail.invalid> - 2026-10-06 12:33 +0100
                        Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 15:16 +0100
                          Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 14:37 +0000
                            Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 17:27 +0100
                              Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-06 23:14 +0000
                                Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 01:25 +0100
                                  Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-07 04:19 +0000
                                    Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-07 06:28 +0000
                                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 11:39 +0100
                                        Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 12:57 +0200
                                    Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 11:32 +0100
                                      Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-07 15:10 +0000
                                        Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 19:41 +0100
                                          Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-08 04:49 +0000
                                            Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-08 12:24 +0100
                                  Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 09:07 +0200
                                    Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 11:49 +0100
                                      Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 13:11 +0200
                        Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 16:17 +0200
                          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 15:32 +0100
                            Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 17:25 +0200
                          Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 14:39 +0000
                            Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 19:48 +0200
                              Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 18:12 +0000
                                [OT] substances (was Re: Taming The Switch-Statement) Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 21:50 +0200
                                Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 17:06 -0700
                      Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 19:25 +0200
                        Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 10:28 +0200
                          Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-07 15:16 +0200
                            Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 16:40 +0200
                            Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-08 07:24 -0700
                      Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 16:08 -0700
                        Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-06 23:45 +0000
                          Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 17:08 -0700
                          Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-07 10:35 +0200
                  Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-06 12:33 +0100
                    Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 17:16 +0200
                    Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-06 16:41 -0700
                Re: Taming The Switch-Statement tTh <tth@none.invalid> - 2026-10-06 12:14 +0200
                  Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 12:43 +0200
                Re: Taming The Switch-Statement Jim Jackson <jj@franjam.org.uk> - 2026-10-06 11:47 +0000
                Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-06 16:05 -0700
                Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-07 00:42 +0000
                  Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 13:52 +0100
                    Re: Taming The Switch-Statement "Chris M. Thomasson" <chris.m.thomasson.1@gmail.com> - 2026-10-07 14:06 -0700
                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-07 23:31 +0100
        Re: Taming The Switch-Statement Kaz Kylheku <046-301-5902@kylheku.com> - 2026-10-05 21:32 +0000
          Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-06 06:07 +0800
          Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-05 16:42 -0700
            Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-05 18:05 -0700
              Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 09:04 +0200
                Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-06 04:11 -0700
                  Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-06 21:40 +0200
              Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-06 00:59 -0700
                Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-06 08:16 +0000
                  Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-06 04:21 -0700
            Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-06 14:43 +0000
              Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-06 17:36 +0200
        Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-06 20:36 -0700
    Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-04 00:20 +0800
    Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-04 09:05 -0700
      Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-04 23:44 +0000
        Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-05 01:46 +0100
          Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-04 20:48 -0700
            Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-05 06:24 +0200
          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-05 11:09 +0100
          Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-06 05:22 +0800
            Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-06 05:26 +0800
    Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-10 00:25 +0000
      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 01:58 +0100
        Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-09 19:17 -0700
          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 11:53 +0100
            Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 14:01 +0200
              Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 14:11 +0100
                Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-10 21:34 +0800
                  Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-10 21:58 +0800
                Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-10 17:50 +0200
                  Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 05:52 +0000
                    Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-11 21:16 +0000
                      Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 23:38 +0000
                  Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 11:58 +0100
                    Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 14:42 +0200
                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 14:39 +0100
                        Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 15:35 -0700
                    Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 14:42 +0000
                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 17:23 +0100
                        Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 17:48 +0000
                          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 19:10 +0100
                            Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-12 07:01 +0000
                    Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 16:41 +0100
                Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 20:08 +0200
                  Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 22:02 +0300
                    Re: Taming The Switch-Statement cross@spitfire.i.gajendra.net (Dan Cross) - 2026-10-10 19:03 +0000
                      Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 22:29 +0300
                    Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 21:55 +0200
                      Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 23:03 +0300
                        Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 22:33 +0200
                          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 21:53 +0100
                            Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 23:16 +0200
                            Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-11 15:29 +0000
                          Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-10 15:30 -0700
                            Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-10 22:58 +0000
                              Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-11 09:09 +0800
                                Re: Taming The Switch-Statement ram@zedat.fu-berlin.de (Stefan Ram) - 2026-10-11 10:14 +0000
                                  Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-11 21:12 +0000
                            Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 03:58 +0200
                          Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 15:32 -0700
                            Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-11 01:58 +0300
                              Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 01:43 +0100
                            Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-11 09:12 +0800
                            Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 04:07 +0200
                              Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 20:13 -0700
                                Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 10:36 +0200
                        Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-11 04:26 -0700
                          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 13:35 +0100
                            Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-11 06:13 -0700
                              Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 14:51 +0100
                            Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 15:33 +0200
                              Re: Taming The Switch-Statement Andrey Tarasevich <noone@noone.net> - 2026-10-11 09:01 -0700
                                Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 19:17 +0200
                                  Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 18:57 +0100
                                    Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 14:28 -0700
                                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 23:02 +0100
                                        Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 16:29 -0700
                                      Re: Taming The Switch-Statement Tim Rentsch <tr.17687@z991.linuxsc.com> - 2026-10-12 04:03 -0700
                                    Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 07:05 +0200
                                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 14:37 +0100
                                        Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 16:12 +0200
                                          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 16:32 +0100
                    Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:38 -0700
                  Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 21:09 +0100
                    Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 23:14 +0200
                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-10 23:01 +0100
                      Re: Taming The Switch-Statement antispam@fricas.org (Waldek Hebisch) - 2026-10-11 08:00 +0000
                        Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 10:27 +0200
                          Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 10:49 +0200
            Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:30 -0700
              Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 02:12 +0100
                Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 19:55 -0700
                  Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 11:00 +0200
                  Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 12:21 +0100
                    Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-11 14:04 -0700
                      Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 23:05 +0100
                        Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 07:22 +0200
                          Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 11:42 +0100
                            Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-12 16:15 +0200
                            Re: Taming The Switch-Statement scott@slp53.sl.home (Scott Lurndal) - 2026-10-12 14:34 +0000
                              Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-12 16:47 +0100
                Re: Taming The Switch-Statement bart <bc@freeuk.com> - 2026-10-11 22:36 +0100
          Re: Taming The Switch-Statement gazelle@shell.xmission.com (Kenny McCormack) - 2026-10-10 13:14 +0000
          Re: Taming The Switch-Statement Michael S <already5chosen@yahoo.com> - 2026-10-10 19:50 +0300
            Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-10 20:13 +0200
              Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 15:54 -0700
                Re: Taming The Switch-Statement Janis Papanagnou <janis_papanagnou+ng@hotmail.com> - 2026-10-11 03:41 +0200
                  Re: Taming The Switch-Statement Johann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid> - 2026-10-11 09:51 +0800
                  Re: Taming The Switch-Statement David Brown <david.brown@hesbynett.no> - 2026-10-11 11:41 +0200
            Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:44 -0700
          Re: Taming The Switch-Statement Keith Thompson <Keith.S.Thompson+u@gmail.com> - 2026-10-10 16:56 -0700
      Re: Taming The Switch-Statement Lawrence D’Oliveiro <ldo@nz.invalid> - 2026-10-11 21:26 +0000
        Re: Taming The Switch-Statement Jon Ribbens <jon+usenet@unequivocal.eu> - 2026-10-11 22:12 +0000

Page 10 of 10 — ← Prev page 1 … 8 9 [10]


#402888

FromJanis Papanagnou <janis_papanagnou+ng@hotmail.com>
Date2026-10-10 20:13 +0200
Message-ID<11adv82$cjlv$2@dont-email.me>
In reply to#402883
On 2026-10-10 18:50, Michael S wrote:
> 
> I fully agree with your post (plus have to add that "more structured
> switch" apart from new keyword(s) will need some new way to express
> common handler for several cases. Ada/VHDL solution of using | would
> not work in C for obvious reasons).

Pascal allows '..' and ',' (for ranges and lists), and even mixed.
That should (in principle) be a syntactical possibility in "C".

Janis

> [...]

[toc] | [prev] | [next] | [standalone]


#402920

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-10-10 15:54 -0700
Message-ID<11aefo0$24k8m$2@kst.eternal-september.org>
In reply to#402888
Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
> On 2026-10-10 18:50, Michael S wrote:
>> I fully agree with your post (plus have to add that "more structured
>> switch" apart from new keyword(s) will need some new way to express
>> common handler for several cases. Ada/VHDL solution of using | would
>> not work in C for obvious reasons).
>
> Pascal allows '..' and ',' (for ranges and lists), and even mixed.
> That should (in principle) be a syntactical possibility in "C".

C2Y will add case ranges using "..." (which is already a token used for
variadic functions), with syntax and semantics close to the existing gcc
extension.

    switch (foo) {
        case 'a' ... 'z':
            // ...
    }

This was considered and rejected (with "..") for C89.  One reason for
rejecting it was that 'A'..'Z' is not contiguous in all character
sets (particularly not in EBCDIC).  The C89 Rationale also mentions
the problem of large code or jump table space for something like
0..65535, something that can be handled these days by minimally
clever compilers.

One problem is that `case 0...1:` is a syntax error.  0...1 is a valid
preprocessing number that can't be converted to a valid constant.
The solution is to surround the ...  with spaces, which is probably
a good idea anyway.

As for ',', that would avoid having to repeat the "case" keyword,
but it could be visually confusing.  `case 0, 1:` is currently a
syntax error, but only because a constant expression can't include
a comma operator (with some obscure exceptions).  Allowing commas
would prevent a future version of the language from either allowing
comma operators in constant expressions or permitting non-constant
expressions in case labels.  I still wouldn't mind such a change,
but it would add no real expressive power and I don't think anyone
has proposed it.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#402932

FromJanis Papanagnou <janis_papanagnou+ng@hotmail.com>
Date2026-10-11 03:41 +0200
Message-ID<11aepgb$286ml$1@dont-email.me>
In reply to#402920
On 2026-10-11 00:54, Keith Thompson wrote:
> Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
>> On 2026-10-10 18:50, Michael S wrote:
>>> I fully agree with your post (plus have to add that "more structured
>>> switch" apart from new keyword(s) will need some new way to express
>>> common handler for several cases. Ada/VHDL solution of using | would
>>> not work in C for obvious reasons).
>>
>> Pascal allows '..' and ',' (for ranges and lists), and even mixed.
>> That should (in principle) be a syntactical possibility in "C".
> 
> C2Y will add case ranges using "..." (which is already a token used for
> variadic functions), with syntax and semantics close to the existing gcc
> extension.
> 
>      switch (foo) {
>          case 'a' ... 'z':
>              // ...
>      }
> 
> This was considered and rejected (with "..") for C89.  One reason for
> rejecting it was that 'A'..'Z' is not contiguous in all character
> sets (particularly not in EBCDIC).  The C89 Rationale also mentions
> the problem of large code or jump table space for something like
> 0..65535, something that can be handled these days by minimally
> clever compilers.
> 
> One problem is that `case 0...1:` is a syntax error.  0...1 is a valid
> preprocessing number that can't be converted to a valid constant.
> The solution is to surround the ...  with spaces, which is probably
> a good idea anyway.
> 
> As for ',', that would avoid having to repeat the "case" keyword,
> but it could be visually confusing.  `case 0, 1:` is currently a
> syntax error, but only because a constant expression can't include
> a comma operator (with some obscure exceptions).  Allowing commas
> would prevent a future version of the language from either allowing
> comma operators in constant expressions or permitting non-constant
> expressions in case labels.  I still wouldn't mind such a change,
> but it would add no real expressive power and I don't think anyone
> has proposed it.

Thanks for the interesting background information.

Your explanation shows how difficult it is to add features (even if
they are comparably simple appearing ones) to an existing language;
many things have to be considered, interdependencies, and also an
educated thought about future consequences.

It's certainly a lot easier if you can design a language from scratch.

Janis

[toc] | [prev] | [next] | [standalone]


#402933

FromJohann 'Myrkraverk' Oskarsson <johann@myrkraverk.invalid>
Date2026-10-11 09:51 +0800
Message-ID<zYByS.21374$VDn8.5260@fx14.ams4>
In reply to#402932
On 10/11/2026 9:41 AM, Janis Papanagnou wrote:
> On 2026-10-11 00:54, Keith Thompson wrote:
>> Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
>>> On 2026-10-10 18:50, Michael S wrote:
>>>> I fully agree with your post (plus have to add that "more structured
>>>> switch" apart from new keyword(s) will need some new way to express
>>>> common handler for several cases. Ada/VHDL solution of using | would
>>>> not work in C for obvious reasons).
>>>
>>> Pascal allows '..' and ',' (for ranges and lists), and even mixed.
>>> That should (in principle) be a syntactical possibility in "C".
>>
>> C2Y will add case ranges using "..." (which is already a token used for
>> variadic functions), with syntax and semantics close to the existing gcc
>> extension.
>>
>>      switch (foo) {
>>          case 'a' ... 'z':
>>              // ...
>>      }
>>
>> This was considered and rejected (with "..") for C89.  One reason for
>> rejecting it was that 'A'..'Z' is not contiguous in all character
>> sets (particularly not in EBCDIC).  The C89 Rationale also mentions
>> the problem of large code or jump table space for something like
>> 0..65535, something that can be handled these days by minimally
>> clever compilers.
>>
>> One problem is that `case 0...1:` is a syntax error.  0...1 is a valid
>> preprocessing number that can't be converted to a valid constant.
>> The solution is to surround the ...  with spaces, which is probably
>> a good idea anyway.
>>
>> As for ',', that would avoid having to repeat the "case" keyword,
>> but it could be visually confusing.  `case 0, 1:` is currently a
>> syntax error, but only because a constant expression can't include
>> a comma operator (with some obscure exceptions).  Allowing commas
>> would prevent a future version of the language from either allowing
>> comma operators in constant expressions or permitting non-constant
>> expressions in case labels.  I still wouldn't mind such a change,
>> but it would add no real expressive power and I don't think anyone
>> has proposed it.
> 
> Thanks for the interesting background information.
> 
> Your explanation shows how difficult it is to add features (even if
> they are comparably simple appearing ones) to an existing language;
> many things have to be considered, interdependencies, and also an
> educated thought about future consequences.
> 
> It's certainly a lot easier if you can design a language from scratch.
> 
> Janis

Dear Javis,

Even then, people screw up, such as Java's lack of labelled /break/s in-
side switch () statements.  I guess they were afraid of /goto/s, and
chose to use /break/ instead, with this annoying side effect.

[Ok, I'll probably want to review that before I post more about it, but
I have faith in my recollection.]

C++ has removed some features from C++98, and again from C++11 if I re-
call correctly, so it's not like people don't screw up from time to
time.

I've not used C# extensively enough to encounter problem spots, so
people here in comp.lang.c are welcome to chime in.

My personal guess is that it would be better for everyone, if program-
ming languages didn't escape the laboratory until at least one more non-
trivial project other than the compiler is near completion or finished.


What do you think?
-- 
Johann | email: invalid -> com | http://www.myrkraverk.com/blog/
I'm not from the Internet, I just work there. | via Easynews.com
https://bsky.app/profile/myrkraverk.bsky.social | for ( ;; ) _:;
Federated at https://fed.brid.gy/bsky/myrkraverk.bsky.social

[toc] | [prev] | [next] | [standalone]


#402962

FromDavid Brown <david.brown@hesbynett.no>
Date2026-10-11 11:41 +0200
Message-ID<11aflk7$2g8ft$1@dont-email.me>
In reply to#402932
On 11/10/2026 03:41, Janis Papanagnou wrote:
> On 2026-10-11 00:54, Keith Thompson wrote:
>> Janis Papanagnou <janis_papanagnou+ng@hotmail.com> writes:
>>> On 2026-10-10 18:50, Michael S wrote:
>>>> I fully agree with your post (plus have to add that "more structured
>>>> switch" apart from new keyword(s) will need some new way to express
>>>> common handler for several cases. Ada/VHDL solution of using | would
>>>> not work in C for obvious reasons).
>>>
>>> Pascal allows '..' and ',' (for ranges and lists), and even mixed.
>>> That should (in principle) be a syntactical possibility in "C".
>>
>> C2Y will add case ranges using "..." (which is already a token used for
>> variadic functions), with syntax and semantics close to the existing gcc
>> extension.
>>
>>      switch (foo) {
>>          case 'a' ... 'z':
>>              // ...
>>      }
>>
>> This was considered and rejected (with "..") for C89.  One reason for
>> rejecting it was that 'A'..'Z' is not contiguous in all character
>> sets (particularly not in EBCDIC).  The C89 Rationale also mentions
>> the problem of large code or jump table space for something like
>> 0..65535, something that can be handled these days by minimally
>> clever compilers.
>>
>> One problem is that `case 0...1:` is a syntax error.  0...1 is a valid
>> preprocessing number that can't be converted to a valid constant.
>> The solution is to surround the ...  with spaces, which is probably
>> a good idea anyway.
>>
>> As for ',', that would avoid having to repeat the "case" keyword,
>> but it could be visually confusing.  `case 0, 1:` is currently a
>> syntax error, but only because a constant expression can't include
>> a comma operator (with some obscure exceptions).  Allowing commas
>> would prevent a future version of the language from either allowing
>> comma operators in constant expressions or permitting non-constant
>> expressions in case labels.  I still wouldn't mind such a change,
>> but it would add no real expressive power and I don't think anyone
>> has proposed it.
> 
> Thanks for the interesting background information.
> 
> Your explanation shows how difficult it is to add features (even if
> they are comparably simple appearing ones) to an existing language;
> many things have to be considered, interdependencies, and also an
> educated thought about future consequences.
> 

The comma operator turns up often as a hinder to syntax extension in 
C-like languages - disproportional, I think, to its usage in "typical" C 
code.  As a clear example, C++ had to deprecate its usage in subscript 
operators so that they could later support a multi-dimensional subscript 
operator.  "m[x, y]" meant "evaluate x, throw away the result, then 
evaluate m.operator[](y)" instead of the more useful "m.operator[](x, y)".

Still, C has the comma operator, some people like it, some code uses it, 
and it is not going anywhere.  And it would be nice if C can continue to 
avoid C++ style special exception rules.

> It's certainly a lot easier if you can design a language from scratch.
> 

Yes.  Or if you can, like Bart, just change your language to suit, or 
put in whatever inconsistencies and ambiguities you like because you 
know exactly how programmers will use the language.

[toc] | [prev] | [next] | [standalone]


#402925

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-10-10 16:44 -0700
Message-ID<11aeilp$24k8m$5@kst.eternal-september.org>
In reply to#402883
Michael S <already5chosen@yahoo.com> writes:
> On Fri, 09 Oct 2026 19:17:35 -0700
> Keith Thompson <Keith.S.Thompson+u@gmail.com> wrote:
>> 
>>BCPL's predecessor, CPL,
>
> I fully agree with your post (plus have to add that "more structured
> switch" apart from new keyword(s) will need some new way to express
> common handler for several cases. Ada/VHDL solution of using | would
> not work in C for obvious reasons).
>
> But for sentence above I have a nitpick. CPL is an ancestor of BCPL,
> but not a predecessor. Historically BCPL was implemented before CPL. I
> am not even sure that CPL was ever implemented entirely.

Interesting.  I've read some of the documents that describe CPL/BCPL/B,
but I'm not familiar with how they were actually implemented and used.

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#402926

FromKeith Thompson <Keith.S.Thompson+u@gmail.com>
Date2026-10-10 16:56 -0700
Message-ID<11aejbh$24k8m$6@kst.eternal-september.org>
In reply to#402868
Keith Thompson <Keith.S.Thompson+u@gmail.com> writes:
[...]
> C's switch statement is essentially a computed goto.  It goes back
> to BCPL (1967), which had different syntax (SWITCHON, CASE, ENDCASE)
> but similar semantics.  BCPL's predecessor, CPL, had a more explicit
> computed goto that could be used in the same way; the target of a
> "go to" could be a label expression.
[...]

I realize I skipped over an entire language.

C's immediate ancestor B had the same switch/case/break syntax as C.

Ken Thompson's B manual, from 1972, doesn't mention "break" (for
either switch statements or loops), and apparently required "goto"
to break out of a loop or switch statement.  There's a sample program
with a switch statement that uses "goto" on each case, but it jumps
to the top of a loop, not to the bottom of the switch.

Kernighan's B tutorial does use "break".  Apparently "break" was
added to the language some time after the manual was written.

B's parent BCPL had both "BREAK" and "ENDCASE".  Apparently both
were dropped when B was designed, and then only one was reintroduced.

https://www.nokia.com/bell-labs/about/dennis-m-ritchie/kbman.html
https://www.nokia.com/bell-labs/about/dennis-m-ritchie/kbman.pdf
https://www.nokia.com/bell-labs/about/dennis-m-ritchie/btut.html
https://www.nokia.com/bell-labs/about/dennis-m-ritchie/btut.pdf

-- 
Keith Thompson (The_Other_Keith) Keith.S.Thompson+u@gmail.com
void Void(void) { Void(); } /* The recursive call of the void */

[toc] | [prev] | [next] | [standalone]


#403006

FromLawrence D’Oliveiro <ldo@nz.invalid>
Date2026-10-11 21:26 +0000
Message-ID<11aguua$30k5e$5@dont-email.me>
In reply to#402866
On Sat, 10 Oct 2026 00:25:54 -0000 (UTC), I wrote:

> For comparison, here is an example of Python’s match-statement. Like
> all the good (i.e. non-C-based) designs, the designers saw no point in
> having fall-through.
>
> This is a very simple example, involving straight matching of values
> against instances of an enum. There are also more complex
> pattern-matching options available.

Here’s an example that matches the type of the match-expression (not
its value) against various event subclasses:

    events = iter(self.ws.events())
    while True :
        event = next(events, None)
        if event == None :
            break
        match event :
            case wsevents.AcceptConnection() :
                self.logger.debug("connection accepted")
            #end case

            case wsevents.RejectConnection() :
                raise RuntimeError \
                  (
                    "WebSockets connection rejected: code %d" % event.status_code
                  )
            #end case

            case wsevents.CloseConnection() :
                self.logger.debug("connection closing")
                if not self.closing :
                    self.closing = True
                    if ASYNC :
                        await self.sock.sendall(self.sock, self.ws.send(event.response()))
                    else :
                        self.sock.sendall(self.sock, self.ws.send(event.response()))
                    #end if
                #end if
            #end case

            case wsevents.Ping() :
                if ASYNC :
                    await self.sock.sendall(self.ws.send(event.response()))
                else :
                    self.sock.sendall(self.ws.send(event.response()))
                #end if
            #end case

            case wsevents.TextMessage() :
                self.partial += event.data
                if not event.message_finished :
                    break
                if self.partial != "" :
                    result = json.loads(self.partial)
                    self.partial = ""
                else :
                    result = None
                #end if
                yield result
            #end case

            case _ :
                raise RuntimeError \
                  (
                        "unexpected WebSocket event %s -- %s"
                    %
                        (type(event).__name__, repr(event))
                  )
            #end case
        #end match
    #end while

It is permissible to mix all the different kinds of matches in
different case-clauses within the same match-statement.

I’m still getting used to the match-statement, and I’m currently
thinking of dropping the “#end case” line, since each case-clause is
implicitly terminated by the following one (or the end of the
match-statement) anyway. The “#end match” will stay, of course.

[toc] | [prev] | [next] | [standalone]


#403011

FromJon Ribbens <jon+usenet@unequivocal.eu>
Date2026-10-11 22:12 +0000
Message-ID<slrn11co2em.2af.jon+usenet@raven.unequivocal.eu>
In reply to#403006
On 2026-10-11, Lawrence D’Oliveiro <ldo@nz.invalid> wrote:
> Here’s an example that matches the type of the match-expression (not
> its value) against various event subclasses:
>
>     events = iter(self.ws.events())
>     while True :
>         event = next(events, None)
>         if event == None :
>             break

Um.

Why would you do that and not:

    for event in self.ws.events():

?

[toc] | [prev] | [standalone]


Page 10 of 10 — ← Prev page 1 … 8 9 [10]

Back to top | Article view | comp.lang.c


csiph-web