element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum My first switch statement
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 14 replies
  • Subscribers 402 subscribers
  • Views 2978 views
  • Users 0 members are here
Related

My first switch statement

Former Member
Former Member over 13 years ago

Im trying to use a switch statement to jump to a different function.  All of the lessons I find just tell me how to turn on leds or outputs.  So I have no idea of what to do here.  So far I have this.

 

 

{

int range;     // I just used this cause it was in an example, I think I need it to name my switch statement. 

int flasha;  //  This is the subroutine I want to run.  I will have more late just trying to figure out the first one.

switch(range);

{

case 0:  //  I don't know why I have  to use "0"  it is just in all of the examples and nothing else works.

state==1, flasha;  // state is my input.  When a button is pressed it will count the number of presses and send it to the approiate subroutine.

break:

}

}

 

When I compile this program I get the error

 

case label '0' not within a switch staetment.

 

Can anyone explain what this means or what I'm doing wrong?

 

Thanks

  • Sign in to reply
  • Cancel

Top Replies

  • billabott
    billabott over 13 years ago +1
    Hey Dan & Nico. Looking at http://www.arduino.cc/en/Tutorial/SwitchCase Would not the range value be determined before entering the switch(range)&case structure? I guess you could set it up that for case…
  • ntewinkel
    ntewinkel over 13 years ago in reply to Former Member +1
    Hi Dan, You are not defining and calling your functions correctly. Remove these two lines, as they define them as integers, which is not the intention: int flasha; int flashb; In the switch statement,…
  • ntewinkel
    ntewinkel over 13 years ago in reply to Former Member +1
    Here's a good link too: http://diyroboticslab.wordpress.com/2009/06/04/ledblink-arduino-program/ It goes into the C programming language, and also has links to what error messages mean.
Parents
  • Former Member
    0 Former Member over 13 years ago

    Hi Guys,

     

    Frist thanks for all your help, gave me alot to think about.  I have made some progress but it is still not working wright.  So far this is what I have.

     

     

    int state=8;

    int mi=9;

    int lastState=LOW;

    int lastbutton=LOW;

    int countmi=0;

    int countst=0;

    int button=LOW;

    int buttonst=LOW;

    void setup()

    {// open void setup

    Serial.begin(9600);

     

    pinMode(state, INPUT);//set pin 8

    pinMode(mi, INPUT);//set pin 9

    state=digitalRead(8);

    button=digitalRead(9);

    }//close void setup

     

    void loop()

    {//open void loop

     

    if (buttonst==HIGH && lastState==LOW)

        {//open state count

        countst++; 

        if (buttonst==10)

        { buttonst==0;

        Serial.println(countst);

        Serial.print("state =");                      

        }//closes state count

         Serial.print(buttonst); 

     

               {// open switch

                int range;

                int  flasha;

                int  flashb;

                switch(range)

                       {//open case

                         case 0:

                         buttonst=0;

                         flasha;

                         break;

     

                         case 1:

                         buttonst=2;

                         flashb;

                         break;

                        }// close case

      

              }//close switch

         

        lastState=buttonst;

       

        buttonst=digitalRead(8);

      

     

        if (button==HIGH && lastbutton==LOW)

            {// open mi count

            countmi++;

            Serial.println(countmi);

            }//close mi count

        lastbutton=button;

        button=digitalRead(9);

    }//close void loop

     

      {//open flasha

        int flasha;

        Serial.println("Hellow world");

    delay (1000);

      }//close flasha

      {// open flashb

        int flashb;

        Serial.println("Not gonna happen");

      }}//close flashb

     

     

     

    When you run it and open your Serial Monitor this is what happens.

     

    It will print

    Hello World

    delay

    then it prints

    Not gonna happen

     

    it does this over and over.  I think my problem is it is not polling my switch statements.  I think it is just going to the ends where I have my subroutines.  The worst part about this is it does it automatically.  Thats right you dont need to make a circuit.  Just cut and paste it and you will see what I mean.

     

    Please help before I choke someone out.

     

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Reply
  • Former Member
    0 Former Member over 13 years ago

    Hi Guys,

     

    Frist thanks for all your help, gave me alot to think about.  I have made some progress but it is still not working wright.  So far this is what I have.

     

     

    int state=8;

    int mi=9;

    int lastState=LOW;

    int lastbutton=LOW;

    int countmi=0;

    int countst=0;

    int button=LOW;

    int buttonst=LOW;

    void setup()

    {// open void setup

    Serial.begin(9600);

     

    pinMode(state, INPUT);//set pin 8

    pinMode(mi, INPUT);//set pin 9

    state=digitalRead(8);

    button=digitalRead(9);

    }//close void setup

     

    void loop()

    {//open void loop

     

    if (buttonst==HIGH && lastState==LOW)

        {//open state count

        countst++; 

        if (buttonst==10)

        { buttonst==0;

        Serial.println(countst);

        Serial.print("state =");                      

        }//closes state count

         Serial.print(buttonst); 

     

               {// open switch

                int range;

                int  flasha;

                int  flashb;

                switch(range)

                       {//open case

                         case 0:

                         buttonst=0;

                         flasha;

                         break;

     

                         case 1:

                         buttonst=2;

                         flashb;

                         break;

                        }// close case

      

              }//close switch

         

        lastState=buttonst;

       

        buttonst=digitalRead(8);

      

     

        if (button==HIGH && lastbutton==LOW)

            {// open mi count

            countmi++;

            Serial.println(countmi);

            }//close mi count

        lastbutton=button;

        button=digitalRead(9);

    }//close void loop

     

      {//open flasha

        int flasha;

        Serial.println("Hellow world");

    delay (1000);

      }//close flasha

      {// open flashb

        int flashb;

        Serial.println("Not gonna happen");

      }}//close flashb

     

     

     

    When you run it and open your Serial Monitor this is what happens.

     

    It will print

    Hello World

    delay

    then it prints

    Not gonna happen

     

    it does this over and over.  I think my problem is it is not polling my switch statements.  I think it is just going to the ends where I have my subroutines.  The worst part about this is it does it automatically.  Thats right you dont need to make a circuit.  Just cut and paste it and you will see what I mean.

     

    Please help before I choke someone out.

     

    Thanks

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
Children
  • ntewinkel
    0 ntewinkel over 13 years ago in reply to Former Member

    Hi Dan,

     

    You are not defining and calling your functions correctly.

     

    Remove these two lines, as they define them as integers, which is not the intention:

                int  flasha;

                int  flashb;

     

    In the switch statement, change how you call the functions - they need opening and closing parentheses to show that it is a function call:

                switch(range)

                       {//open case

                         case 0:

                         buttonst=0;

                         flasha();

                         break;

     

                         case 1:

                         buttonst=2;

                         flashb();

                         break;

                        }// close case

     

    And to define your functions you need to give them names and identify what they give back (the first void) and what they receive (the second void)...

     

    void flasha(void)

      {//open flasha

        int flasha;

        Serial.println("Hellow world");

    delay (1000);

      }//close flasha

     

    void flashb(void)

      {// open flashb

        int flashb;

        Serial.println("Not gonna happen");

      }}//close flashb

     

    I haven't really looked at what the rest is doing or should be doing, but this will get you on your way.

     

    Cheers,

    -Nico

    • Cancel
    • Vote Up +1 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube