Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
  1. Home
  2. Other Discussions
  3. The Weird and The Wonderful
  4. Magic of if...else...programming

Magic of if...else...programming

Scheduled Pinned Locked Moved The Weird and The Wonderful
43 Posts 23 Posters 1 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    che3358
    wrote on last edited by
    #1

    The following code was found in someone's web template. Hope you enjoy the best logic.

    if(dt != null)
    {
    if(dt.Rows.Count != 0)
    {
    if(dt.Rows[0]["Number"].ToString() == "1")
    {
    return true;
    }
    else
    {
    return false;
    }
    }
    else
    {
    return false;
    }
    }
    else
    {
    return false;
    }

    P T V S T 6 Replies Last reply
    0
    • C che3358

      The following code was found in someone's web template. Hope you enjoy the best logic.

      if(dt != null)
      {
      if(dt.Rows.Count != 0)
      {
      if(dt.Rows[0]["Number"].ToString() == "1")
      {
      return true;
      }
      else
      {
      return false;
      }
      }
      else
      {
      return false;
      }
      }
      else
      {
      return false;
      }

      P Offline
      P Offline
      PIEBALDconsult
      wrote on last edited by
      #2

      Zzzzz... Half (or nearly) the posts on this forum are like that.

      1 Reply Last reply
      0
      • C che3358

        The following code was found in someone's web template. Hope you enjoy the best logic.

        if(dt != null)
        {
        if(dt.Rows.Count != 0)
        {
        if(dt.Rows[0]["Number"].ToString() == "1")
        {
        return true;
        }
        else
        {
        return false;
        }
        }
        else
        {
        return false;
        }
        }
        else
        {
        return false;
        }

        T Offline
        T Offline
        Timothy Byrd
        wrote on last edited by
        #3

        Oddly enough, I just got rid of some code that looked a bit like that...

        bool InitRoutine()
        {
        bool failed=false;

        ValType val;
        
        HRESULT ans = GetValue1(val);
        if (ans==S\_OK)
            {
            globalVal1 = val;
            }
        else
            {
            failed = failed || true;
            }
        
        ans = GetValue2(val);
        if (ans==S\_OK)
            {
            globalVal2 = val;
            }
        else
            {
            failed = failed || true;
            }
        
        ans = GetValue3(val);
        if (ans==S\_OK)
            {
            globalVal3 = val;
            }
        else
            {
            failed = failed || true;
            }
        
        ans = GetValue4(val);
        if (ans==S\_OK)
            {
            globalVal4 = val;
            }
        else
            {
            failed = failed || true;
            }
        
        
        return !failed;
        }
        
        S M J 3 Replies Last reply
        0
        • C che3358

          The following code was found in someone's web template. Hope you enjoy the best logic.

          if(dt != null)
          {
          if(dt.Rows.Count != 0)
          {
          if(dt.Rows[0]["Number"].ToString() == "1")
          {
          return true;
          }
          else
          {
          return false;
          }
          }
          else
          {
          return false;
          }
          }
          else
          {
          return false;
          }

          V Offline
          V Offline
          vaghelabhavesh
          wrote on last edited by
          #4

          This code reminds me one developer working under me, according to her every if has to have else, you can't use if alone. :-)

          G K 2 Replies Last reply
          0
          • C che3358

            The following code was found in someone's web template. Hope you enjoy the best logic.

            if(dt != null)
            {
            if(dt.Rows.Count != 0)
            {
            if(dt.Rows[0]["Number"].ToString() == "1")
            {
            return true;
            }
            else
            {
            return false;
            }
            }
            else
            {
            return false;
            }
            }
            else
            {
            return false;
            }

            S Offline
            S Offline
            Stephen Hewitt
            wrote on last edited by
            #5

            What's so bad about that? I'd do it like the following but I've seen far worse than that code:

            // Only proceed id if 'dt' is valid and contains at least one row.
            if (dt == NULL)
            return false;
            if (dt.Rows.Count == 0)
            return false;
             
            return (t.Rows[0]["Number"].ToString() == "1");

            R K 2 Replies Last reply
            0
            • S Stephen Hewitt

              What's so bad about that? I'd do it like the following but I've seen far worse than that code:

              // Only proceed id if 'dt' is valid and contains at least one row.
              if (dt == NULL)
              return false;
              if (dt.Rows.Count == 0)
              return false;
               
              return (t.Rows[0]["Number"].ToString() == "1");

              R Offline
              R Offline
              Robert Rohde
              wrote on last edited by
              #6

              How would you think of this?

              return dt != null && dt.Rows.Count > 0 && (int)t.Rows[0]["Number"] == 1;

              The last part depends on the data the table contains. But if its clear that the column is filled with integers then this should be more efficient.

              L P B Q 4 Replies Last reply
              0
              • R Robert Rohde

                How would you think of this?

                return dt != null && dt.Rows.Count > 0 && (int)t.Rows[0]["Number"] == 1;

                The last part depends on the data the table contains. But if its clear that the column is filled with integers then this should be more efficient.

                L Offline
                L Offline
                Luc Pattyn
                wrote on last edited by
                #7

                Nah. This is much more difficult to debug, how would you set a breakpoint anywhere inside such a complex expression?

                Luc Pattyn [Forum Guidelines] [My Articles]


                Love, happiness and fewer bugs for 2009!


                P A S 3 Replies Last reply
                0
                • L Luc Pattyn

                  Nah. This is much more difficult to debug, how would you set a breakpoint anywhere inside such a complex expression?

                  Luc Pattyn [Forum Guidelines] [My Articles]


                  Love, happiness and fewer bugs for 2009!


                  P Offline
                  P Offline
                  PIEBALDconsult
                  wrote on last edited by
                  #8

                  Why would you need to? I never have. And for that purpose you can write it specifically for debugging and then put it back to "normal" once you're satisfied with that bit (and not with conditional compiling). I had to do that sort of thing once a week or so ago. It works for me, others may choose other paths.

                  L 1 Reply Last reply
                  0
                  • R Robert Rohde

                    How would you think of this?

                    return dt != null && dt.Rows.Count > 0 && (int)t.Rows[0]["Number"] == 1;

                    The last part depends on the data the table contains. But if its clear that the column is filled with integers then this should be more efficient.

                    P Offline
                    P Offline
                    PIEBALDconsult
                    wrote on last edited by
                    #9

                    Right, that's how I do it. Though it may be more a matter of readability/maintainability than of efficiency (in my opinion).

                    1 Reply Last reply
                    0
                    • V vaghelabhavesh

                      This code reminds me one developer working under me, according to her every if has to have else, you can't use if alone. :-)

                      G Offline
                      G Offline
                      GibbleCH
                      wrote on last edited by
                      #10

                      Those are the people you don't have working for you for long...one would hope.

                      V 1 Reply Last reply
                      0
                      • P PIEBALDconsult

                        Why would you need to? I never have. And for that purpose you can write it specifically for debugging and then put it back to "normal" once you're satisfied with that bit (and not with conditional compiling). I had to do that sort of thing once a week or so ago. It works for me, others may choose other paths.

                        L Offline
                        L Offline
                        Luc Pattyn
                        wrote on last edited by
                        #11

                        I'm afraid you overlooked the little joke icon; I seldom set a breakpoint so I will not break up things that belong together just to facilitate a potential later debug action. :)

                        Luc Pattyn [Forum Guidelines] [My Articles]


                        Love, happiness and fewer bugs for 2009!


                        P 1 Reply Last reply
                        0
                        • L Luc Pattyn

                          I'm afraid you overlooked the little joke icon; I seldom set a breakpoint so I will not break up things that belong together just to facilitate a potential later debug action. :)

                          Luc Pattyn [Forum Guidelines] [My Articles]


                          Love, happiness and fewer bugs for 2009!


                          P Offline
                          P Offline
                          PIEBALDconsult
                          wrote on last edited by
                          #12

                          Oh, yes, indeed I did, thanks. It's because the coffee was still dripping. We had a power outage this morning so the coffee maker didn't start automatically. I'd better get a UPS for it.

                          1 Reply Last reply
                          0
                          • G GibbleCH

                            Those are the people you don't have working for you for long...one would hope.

                            V Offline
                            V Offline
                            vaghelabhavesh
                            wrote on last edited by
                            #13

                            Yeah Its been two years. I asked the HR department to improve filtering & recruitment process but as they are looking for cheap labor I don't think this will ever happen.

                            G 1 Reply Last reply
                            0
                            • L Luc Pattyn

                              Nah. This is much more difficult to debug, how would you set a breakpoint anywhere inside such a complex expression?

                              Luc Pattyn [Forum Guidelines] [My Articles]


                              Love, happiness and fewer bugs for 2009!


                              A Offline
                              A Offline
                              Andrew Rissing
                              wrote on last edited by
                              #14

                              If the statement fails, just put a breakpoint on the entire statement. Then, highlight each portion, right click, and select 'Add to Watch'. Viola! You'll see whether or not the statement passed. Rinse and repeat.

                              A L 2 Replies Last reply
                              0
                              • A Andrew Rissing

                                If the statement fails, just put a breakpoint on the entire statement. Then, highlight each portion, right click, and select 'Add to Watch'. Viola! You'll see whether or not the statement passed. Rinse and repeat.

                                A Offline
                                A Offline
                                Andrew Rissing
                                wrote on last edited by
                                #15

                                And yes...I know it was a joke. But still...not sure if everyone knows of such ;)

                                P 1 Reply Last reply
                                0
                                • A Andrew Rissing

                                  If the statement fails, just put a breakpoint on the entire statement. Then, highlight each portion, right click, and select 'Add to Watch'. Viola! You'll see whether or not the statement passed. Rinse and repeat.

                                  L Offline
                                  L Offline
                                  Luc Pattyn
                                  wrote on last edited by
                                  #16

                                  Thank you for the tip; I rarely use those fancy debug features. It does widen the scope of the breakpoint, hence requires more human intervention to narrow it down, but it works. :)

                                  Luc Pattyn [Forum Guidelines] [My Articles]


                                  Love, happiness and fewer bugs for 2009!


                                  1 Reply Last reply
                                  0
                                  • A Andrew Rissing

                                    And yes...I know it was a joke. But still...not sure if everyone knows of such ;)

                                    P Offline
                                    P Offline
                                    PIEBALDconsult
                                    wrote on last edited by
                                    #17

                                    I certainly didn't, and I probably won't the next time I could use it.

                                    1 Reply Last reply
                                    0
                                    • T Timothy Byrd

                                      Oddly enough, I just got rid of some code that looked a bit like that...

                                      bool InitRoutine()
                                      {
                                      bool failed=false;

                                      ValType val;
                                      
                                      HRESULT ans = GetValue1(val);
                                      if (ans==S\_OK)
                                          {
                                          globalVal1 = val;
                                          }
                                      else
                                          {
                                          failed = failed || true;
                                          }
                                      
                                      ans = GetValue2(val);
                                      if (ans==S\_OK)
                                          {
                                          globalVal2 = val;
                                          }
                                      else
                                          {
                                          failed = failed || true;
                                          }
                                      
                                      ans = GetValue3(val);
                                      if (ans==S\_OK)
                                          {
                                          globalVal3 = val;
                                          }
                                      else
                                          {
                                          failed = failed || true;
                                          }
                                      
                                      ans = GetValue4(val);
                                      if (ans==S\_OK)
                                          {
                                          globalVal4 = val;
                                          }
                                      else
                                          {
                                          failed = failed || true;
                                          }
                                      
                                      
                                      return !failed;
                                      }
                                      
                                      S Offline
                                      S Offline
                                      Shaun Wilde
                                      wrote on last edited by
                                      #18

                                      Ah a follower of the 'there must be only one return statement per method cult'.

                                      I'll be more enthusiastic about encouraging thinking outside the box when there's evidence of any thinking going on inside it. - pTerry
                                      BizSquawk

                                      P 1 Reply Last reply
                                      0
                                      • V vaghelabhavesh

                                        Yeah Its been two years. I asked the HR department to improve filtering & recruitment process but as they are looking for cheap labor I don't think this will ever happen.

                                        G Offline
                                        G Offline
                                        GibbleCH
                                        wrote on last edited by
                                        #19

                                        That's not cheap though, it's way more expensive in the long run if they aren't competent. More fixing bugs, and longer development time. And what the heck kind of code would they put in the else if you don't technically need an else?

                                        V K 2 Replies Last reply
                                        0
                                        • S Shaun Wilde

                                          Ah a follower of the 'there must be only one return statement per method cult'.

                                          I'll be more enthusiastic about encouraging thinking outside the box when there's evidence of any thinking going on inside it. - pTerry
                                          BizSquawk

                                          P Offline
                                          P Offline
                                          PIEBALDconsult
                                          wrote on last edited by
                                          #20

                                          A misguided one, gives the rest of us a bad name. Though I don't see where any other returns would go.

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Categories
                                          • Recent
                                          • Tags
                                          • Popular
                                          • World
                                          • Users
                                          • Groups