Csharp/C Sharp/Language Basics/Switch

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Demonstrate the switch

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Demonstrate the switch.

using System;

public class SwitchDemo {

 public static void Main() { 
   int i; 

   for(i=0; i<10; i++) 
     switch(i) { 
       case 0:  
         Console.WriteLine("i is zero"); 
         break; 
       case 1:  
         Console.WriteLine("i is one"); 
         break; 
       case 2:  
         Console.WriteLine("i is two"); 
         break; 
       case 3:  
         Console.WriteLine("i is three"); 
         break; 
       case 4:  
         Console.WriteLine("i is four"); 
         break; 
       default:  
         Console.WriteLine("i is five or more"); 
         break; 
     } 
     
 }   

}

      </source>


Empty cases can fall through

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Empty cases can fall through.

using System;

public class EmptyCasesCanFall {

 public static void Main() { 
   int i; 

   for(i=1; i < 5; i++)  
     switch(i) { 
       case 1: 
       case 2: 
       case 3: Console.WriteLine("i is 1, 2 or 3"); 
         break; 
       case 4: Console.WriteLine("i is 4"); 
         break; 
     } 

 } 

}


      </source>


Illustrates the use of the switch statement

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example4_5.cs illustrates the use of
 the switch statement
  • /

public class Example4_5 {

 public static void Main()
 {
   int planetPosition = 4;  // Mars
   switch (planetPosition)
   {
     case 1:
       System.Console.WriteLine("Mercury");
       break;
     case 2:
       System.Console.WriteLine("Venus");
       break;
     case 3:
       System.Console.WriteLine("Earth");
       break;
     case 4:
       System.Console.WriteLine("Mars");
       break;
     case 5:
       System.Console.WriteLine("Jupiter");
       break;
     case 6:
       System.Console.WriteLine("Saturn");
       break;
     case 7:
       System.Console.WriteLine("Uranus");
       break;
     case 8:
       System.Console.WriteLine("Neptune");
       break;
     case 9:
       System.Console.WriteLine("Pluto");
       break;
     default:
       System.Console.WriteLine("Planet unknown");
       break;
   }
 }

}

      </source>


Illustrates the use of the switch statement to compare string values

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example4_6.cs illustrates the use of
 the switch statement to compare string values
  • /

public class Example4_6 {

 public static void Main()
 {
   string planetName = "Saturn";  // sixth planet from the Sun
   switch (planetName)
   {
     case "Mercury":
       System.Console.WriteLine(1);
       break;
     case "Venus":
       System.Console.WriteLine(2);
       break;
     case "Earth":
       System.Console.WriteLine(3);
       break;
     case "Mars":
       System.Console.WriteLine(4);
       break;
     case "Jupiter":
       System.Console.WriteLine(5);
       break;
     case "Saturn":
       System.Console.WriteLine(6);
       break;
     case "Uranus":
       System.Console.WriteLine(7);
       break;
     case "Neptune":
       System.Console.WriteLine(8);
       break;
     case "Pluto":
       System.Console.WriteLine(9);
       break;
     default:
       System.Console.WriteLine("Planet unknown");
       break;
   }
 }

}

      </source>


Simulate a conveyor belt

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Simulate a conveyor belt

using System;

class ConveyorControl {

 // enumerate the conveyor commands 
 public enum action { start, stop, forward, reverse }; 

 public void conveyor(action com) { 
   switch(com) { 
     case action.start: 
       Console.WriteLine("Starting conveyor."); 
       break; 
     case action.stop: 
       Console.WriteLine("Stopping conveyor."); 
       break; 
     case action.forward: 
       Console.WriteLine("Moving forward."); 
       break; 
     case action.reverse: 
       Console.WriteLine("Moving backward."); 
       break; 
   } 
 } 

}

public class ConveyorDemo {

 public static void Main() { 
   ConveyorControl c = new ConveyorControl(); 

   c.conveyor(ConveyorControl.action.start); 
   c.conveyor(ConveyorControl.action.forward); 
   c.conveyor(ConveyorControl.action.reverse); 
   c.conveyor(ConveyorControl.action.stop); 
    
 } 

}

      </source>


Switch based console menu

<source lang="csharp"> /* C# Programming Tips & Techniques by Charles Wright, Kris Jamsa Publisher: Osborne/McGraw-Hill (December 28, 2001) ISBN: 0072193794

  • /

namespace nsSwitch {

   using System;
   public class nsSwitch
   {
       static void Main ()
       {
           bool done = false;
           do
           {
               clsAnimal dog = new clsAnimal (1);
               clsAnimal cat = new clsAnimal (2);
               clsAnimal goldfish = new clsAnimal (3);
               clsAnimal aardvark = new clsAnimal (4);
               Console.WriteLine ("Select one of the following:");
               Console.WriteLine ("\t1 -- For dogs");
               Console.WriteLine ("\t2 -- For cats");
               Console.WriteLine ("\t3 -- For goldfish");
               Console.WriteLine ("\t4 -- For aardvarks");
               Console.Write ("Enter Your selection (0 to exit): ");
               string strSelection = Console.ReadLine ();
               int iSel;
               try
               {
                   iSel = int.Parse(strSelection);
               }
               catch (FormatException)
               {
                   Console.WriteLine ("\r\nWhat?\r\n");
                   continue;
               }
               Console.WriteLine ("You selected  " + iSel);
               switch (iSel)
               {
                   case 0:
                       done = true;
                       break;
                   case 1:
                       Console.WriteLine (dog);
                       break;
                   case 2:
                       Console.WriteLine (cat);
                       break;
                   case 3:
                       Console.WriteLine (goldfish);
                       break;
                   case 4:
                       Console.WriteLine (aardvark);
                       break;
                   default:
                       Console.WriteLine ("You selected an invalid number: {0}\r\n", iSel);
                       continue;
               }
               Console.WriteLine ();
           } while (!done);
           Console.WriteLine ("\nGoodbye!");
       }
   }
   class clsAnimal
   {
       public clsAnimal (int Type)
       {
           PetType = Type;
       }
       private int Type;
       public int PetType
       {
           get {return (Type);}
           set {Type = value;}
       }
       public override string ToString()
       {
            switch (PetType)
            {
                default:
                    return ("Unknown pet");
                case 1:
                    return ("Your pet type is a dog");
                case 2:
                    return ("Your pet type is a cat");
                case 3:
                    return ("Your pet type is a goldfish");
                case 4:
                    return ("Your pet type is an aardvark");
            }
        }
   }

}


      </source>


Switch for int type

<source lang="csharp"> /*

* C# Programmers Pocket Consultant
* Author: Gregory S. MacBeth
* Email: gmacbeth@comporium.net
* Create Date: June 27, 2003
* Last Modified Date:
*/

using System; namespace Client.Chapter_4___Program_Control {

 public class MyMainClass1
 {
   static void Main(string[] args)
   {
     int a = 0;
     Console.ReadLine();
     switch (a)
     {
       case 1:
         Console.WriteLine("One");
         break;
       case 2:
         Console.WriteLine("Two");
         break;
       default:
         Console.WriteLine("?");
         break;
     }
   }
 }

}

      </source>


Switch statement containing a branch with no statements: causes a "fall-through" to the next branch

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /

/*

 Example4_7.cs illustrates the use of
 the switch statement containing a branch
 with no statements: causes a "fall-through"
 to the next branch
  • /

public class Example4_7 {

 public static void Main()
 {
   int value = 1;
   switch (value)
   {
     case 0:
       System.Console.WriteLine("Zero");
       break;
     case 1:
     case 2:
       System.Console.WriteLine("One or two");
       break;
     case 3:
       System.Console.WriteLine("Three");
       break;
     default:
       System.Console.WriteLine("Other number");
       break;
   }
 }

}

      </source>


Switch Values

<source lang="csharp"> /* Learning C# by Jesse Liberty Publisher: O"Reilly ISBN: 0596003765

  • /
using System;
public class SwitchValues
{
    static void Main()
    {
        const int Democrat = 0;
        const int Republican = 1;
        const int Progressive = 2;
        // hard wire to Republican
        int myChoice = Republican;
        // switch on the value of myChoice
        switch (myChoice)
        {
            case Democrat:
                Console.WriteLine("You voted Democratic.");
                break;
            case Republican:
                Console.WriteLine("You voted Republican.");
                break;
            case Progressive:
                Console.WriteLine("You voted Progressive.");
                break;
        }
        Console.WriteLine("Thank you for voting.");
    }
}
          
      </source>


Switch Values Fall Through

<source lang="csharp"> /* Learning C# by Jesse Liberty Publisher: O"Reilly ISBN: 0596003765

  • /
using System;

public class ValuesFallThrough

{
    static void Main()
    {
        String myChoice = "NewLeft";
        // switch on the string value of myChoice
        switch (myChoice)
        {
            case "NewLeft":
                Console.WriteLine(
                 "The NewLeft members are voting Democratic.");
                goto case "Democrat";
            case "Democrat":
                Console.WriteLine("You voted Democratic.\n");
                break;
            case "CompassionateRepublican": // fall through
            case "Republican":
                Console.WriteLine("You voted Republican.\n");
                Console.WriteLine("Don"t you feel compassionate?");
                break;
            case "Progressive":
                Console.WriteLine("You voted Progressive.\n");
                break;
            default:
                Console.WriteLine("You did not make a valid choice.");
                break;
        }
        Console.WriteLine("Thank you for voting.");
    }
}
          
      </source>


Switch With Default Values

<source lang="csharp"> /* Learning C# by Jesse Liberty Publisher: O"Reilly ISBN: 0596003765

  • /
using System;

public class SwitchWithDefaultValues

{
    static void Main()
    {
        const int Democrat = 0;
        const int Republican = 1;
        const int Progressive = 2;
        // hard wire to Republican
        int myChoice = 5;
        // switch on the value of myChoice
        switch (myChoice)
        {
            case Democrat:
                Console.WriteLine("You voted Democratic.\n");
                break;
            case Republican:
                Console.WriteLine("You voted Republican.\n");
                break;
            case Progressive:
                Console.WriteLine("You voted Progressive.\n");
                break;
            default:
                Console.WriteLine("You did not make a valid choice.");
                break;
        }
        Console.WriteLine("Thank you for voting.");
    }
}
          
      </source>


Use a char to control the switch

<source lang="csharp"> /* C#: The Complete Reference by Herbert Schildt Publisher: Osborne/McGraw-Hill (March 8, 2002) ISBN: 0072134852

  • /

// Use a char to control the switch.

using System;

public class SwitchDemo2 {

 public static void Main() { 
   char ch; 

   for(ch="A"; ch<= "E"; ch++) 
     switch(ch) { 
       case "A":  
         Console.WriteLine("ch is A"); 
         break; 
       case "B":  
         Console.WriteLine("ch is B"); 
         break; 
       case "C":  
         Console.WriteLine("ch is C"); 
         break; 
       case "D":  
         Console.WriteLine("ch is D"); 
         break; 
       case "E":  
         Console.WriteLine("ch is E"); 
         break; 
     }     
 }   

}

      </source>