• Vigge93@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      2 hours ago

      Your point about it not running when there is nothing to iterate over is incorrect. The else-statement runs when the iterator is exhausted; if the iterator empty, it is exhausted immediately and the else-statement is executed.

      • lugal@sopuli.xyz
        link
        fedilink
        arrow-up
        2
        ·
        54 minutes ago

        I think it’s intended as “not only when” because it would make sense to have an “if empty” case but the way it is, it doesn’t make sense

  • csm10495@sh.itjust.works
    link
    fedilink
    English
    arrow-up
    27
    ·
    21 hours ago

    Through the magic of make, you can write code that changes if statements to while loops then changes it back after compilation passes or fails.

    I only give good advice.

    • aMockTie@lemmy.world
      link
      fedilink
      arrow-up
      39
      ·
      1 day ago

      Statements that start with # in C/C++ are known as preprocessor directives, that is, they are executed before compilation begins. OP has used a #define which will replace any instance of A (IF(x)) with B (while (x)) in the code.

      So the IF statement is really just a while statement.

          • ulterno@programming.dev
            link
            fedilink
            English
            arrow-up
            5
            ·
            14 hours ago

            I always wondered why I always had a hard time making developers not call “if” a “loop”.
            Turns out it was on their tests.

            Glad I didn’t read my college material, or I would have lost faith in my college professors.

          • NigelFrobisher@aussie.zone
            link
            fedilink
            arrow-up
            4
            ·
            24 hours ago

            It just occurred to that in Yorkshire dialect a while loop would actually be an until loop. Directives to the rescue!

        • kyub@discuss.tchncs.deOP
          link
          fedilink
          English
          arrow-up
          10
          ·
          1 day ago

          “Infamous” just refers to newbies who sometimes call if statements “if loops”. I’ve heard this quite a bit.

        • AliasVortex@lemmy.world
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          2
          ·
          1 day ago

          Infamous because the condition is 1 (or true), the loop never actually exits because it’s always true

    • Reil@beehaw.org
      link
      fedilink
      English
      arrow-up
      4
      ·
      edit-2
      1 day ago

      They used a macro to make ‘IF’ (which is distinctly not ‘if’) map to ‘while’. So it’s really a while(1) loop, which will repeat forever, or until the program is terminated, whichever comes first.

      Someone’s just being silly.

      • LeFrog@discuss.tchncs.de
        link
        fedilink
        arrow-up
        2
        ·
        15 hours ago

        Thx!

        ‘IF’ (which is distinctly not ‘if’)

        Is this something needed “for the meme” or something with this macro or C/C++? Or why the case-sensitivity here? I only know languages like Java, Python, JS. Unfortunately the ancient tongue is not known to me.

        • Reil@beehaw.org
          link
          fedilink
          English
          arrow-up
          1
          ·
          5 hours ago

          It’s not really that important to the joke, since I’m pretty sure you can also replace keywords like ‘if’ with the preprocessor. It’s just that preprocessor macros are typically (style, not syntax) ALL_CAPS_WITH_UNDERSCORES.

          It’s just another clue that that block isn’t actually an if-block, since C is case sensitive and ‘IF’ wouldn’t actually work.

  • Tamlyn@lemmy.zip
    link
    fedilink
    arrow-up
    6
    ·
    1 day ago

    i have a colleague always saying if loop (in our language). I’m a bit to shy to tell him his mistakes… People easily hate me but i would like to…