Wayback Machinekoobas.hobune.stream
May JUN Jul
Previous capture 13 Next capture
2021 2022 2023
1 capture
13 Jun 22 - 13 Jun 22
sparklines
Close Help
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
  • Asset Store
  • Get Unity

UNITY ACCOUNT

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account
  • Blog
  • Forums
  • Answers
  • Evangelists
  • User Groups
  • Beta Program
  • Advisory Panel

Navigation

  • Home
  • Products
  • Solutions
  • Made with Unity
  • Learning
  • Support & Services
  • Community
    • Blog
    • Forums
    • Answers
    • Evangelists
    • User Groups
    • Beta Program
    • Advisory Panel

Unity account

You need a Unity Account to shop in the Online and Asset Stores, participate in the Unity Community and manage your license portfolio. Login Create account

Language

  • Chinese
  • Spanish
  • Japanese
  • Korean
  • Portuguese
  • Ask a question
  • Spaces
    • Default
    • Help Room
    • META
    • Moderators
    • Topics
    • Questions
    • Users
    • Badges
  • Home /
avatar image
0
Question by GameSlayerGS · May 30, 2013 at 06:20 PM · guiifelse if

Function with multiple if, else if statements.

Is there a problem with having a function that contains multiple if, else if statements in it? I have a function that goes something like:

 function broken () {
      if (blah blah blah) {
           stuff to do;
      }
      else if (blah blah blah) {
           stuff to do;
      }
      if (blah blah blah) {
           stuff to do;
      }
      else if (blah blah blah) {
           stuff to do;
      }
 }

Only the "print" command in the statements actually works, nothing else does. I don't honestly think it's a problem with this, but I'm out of other ideas. The other stuff that's it's supposed to deals with GUIs. I wrote the first if, else if statment, copied and pasted it 10 times, then changed some of the values so rather than doing the same thing 11 times it does it to 11 different things, but it only prints that it'd doing it, it doesn't actually do it.

Comment
Add comment · Show 1
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users
avatar image HypoXic5665 · May 30, 2013 at 06:35 PM 0
Share

Your description is rather confusing. It might help if you post your actual code or sample code with fillers that will actually compile along with the console output so that we may have a better understanding of what is going on.

1 Reply

· Add your reply
  • Sort: 
avatar image
2

Answer by robertbu · May 30, 2013 at 06:32 PM

There is no problem with multiple statements, but I don't think you are getting what you think you are getting. It is best until you gain experience to 1) never leave out a bracket, and 2) be very explicit about your indenting. The above can be rewritten as:

  if (condition1) {
       stuff to do;
  }
  else { 
     if (condition2) {
       stuff to do;
      }
 }
 
 
  if (condition3) {
       stuff to do;
  }
  else {
     if (condition4) {
       stuff to do;
     }    
  }


Which means you have two separate blocks. If condition1 and condition2 are false nothing happens in the first block. If condition3 and condition4 are false, nothing happens in the second block. What you may want is something like this:

  if (condition1) {
       //stuff to do;
  }
  else { 
     if (condition2) {
       //stuff to do;
      }
     else {
         if (condition3) {
               //stuff to do;
          }
          else {
             if (condition4) {
                   //stuff to do;
             }    
             else {
                 //default stuff to do
              }
         }
     }
 }

Often experience programmers will omit the indenting in this kind of if/else chain. Note often this kind of logic is handled by switch()/case statements.

P.S. for some reason the 101/010 has the indentation off a bit. Copy and past it into Mono.

Comment
Add comment · Share
10 |3000 characters needed characters left characters exceeded
▼
  • Viewable by all users
  • Viewable by moderators
  • Viewable by moderators and the original poster
  • Advanced visibility
Viewable by all users

Your answer

Hint: You can notify a user about this post by typing @username

Up to 2 attachments (including images) can be used with a maximum of 524.3 kB each and 1.0 MB total.

Follow this Question

Answers Answers and Comments

14 People are following this question.

avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image avatar image

Related Questions

Why is Unity registering my false boolean as true? 1 Answer

Trying to stop or change an if 1 Answer

Display GUI when kill count reaches 5 1 Answer

How to use multiple else if statements C# 2 Answers

Checking the raycast 1 Answer


Enterprise
Social Q&A

Social
Subscribe on YouTube social-youtube Follow on LinkedIn social-linkedin Follow on Twitter social-twitter Follow on Facebook social-facebook Follow on Instagram social-instagram

Footer

  • Purchase
    • Products
    • Subscription
    • Asset Store
    • Unity Gear
    • Resellers
  • Education
    • Students
    • Educators
    • Certification
    • Learn
    • Center of Excellence
  • Download
    • Unity
    • Beta Program
  • Unity Labs
    • Labs
    • Publications
  • Resources
    • Learn platform
    • Community
    • Documentation
    • Unity QA
    • FAQ
    • Services Status
    • Connect
  • About Unity
    • About Us
    • Blog
    • Events
    • Careers
    • Contact
    • Press
    • Partners
    • Affiliates
    • Security
Copyright © 2020 Unity Technologies
  • Legal
  • Privacy Policy
  • Cookies
  • Do Not Sell My Personal Information
  • Cookies Settings
"Unity", Unity logos, and other Unity trademarks are trademarks or registered trademarks of Unity Technologies or its affiliates in the U.S. and elsewhere (more info here). Other names or brands are trademarks of their respective owners.
  • Anonymous
  • Sign in
  • Create
  • Ask a question
  • Spaces
  • Default
  • Help Room
  • META
  • Moderators
  • Explore
  • Topics
  • Questions
  • Users
  • Badges