Csharp/CSharp Tutorial/Statement/Switch

Материал из .Net Framework эксперт
Версия от 15:20, 26 мая 2010; Admin (обсуждение | вклад) (1 версия)
(разн.) ← Предыдущая | Текущая версия (разн.) | Следующая → (разн.)
Перейти к: навигация, поиск

A string can control a switch statement

<source lang="csharp">using System;

class MainClass {

 public static void Main() {  
   string[] strs = { "one", "two", "three", "two", "one" }; 

   foreach(string s in strs) { 
     switch(s) { 
       case "one": 
         Console.Write(1); 
         break; 
       case "two": 
         Console.Write(2); 
         break; 
       case "three": 
         Console.Write(3); 
         break; 
     } 
   } 
   Console.WriteLine(); 

 } 

}</source>

12321

Demonstrate the switch

<source lang="csharp">using System;

class MainClass {

 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>

i is zero
i is one
i is two
i is three
i is four
i is five or more
i is five or more
i is five or more
i is five or more
i is five or more

Empty cases can fall through

<source lang="csharp">using System;

class MainClass {

 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>

i is 1, 2 or 3
i is 1, 2 or 3
i is 1, 2 or 3
i is 4

Handle two switch cases

<source lang="csharp">using System; class MainClass {

   public static void Main()
   {
       int i = 1;
       
       switch (i)
       {
           case 1:
           case 2:
           // code here handles both 1 and 2
           Console.WriteLine("Low Number");
           break;
           
           case 3:
           Console.WriteLine("3");
           goto case 4;
           
           case 4:
           Console.WriteLine("Middle Number");
           break;
           
           default:
           Console.WriteLine("Default Number");
           break;
       }
   }

}</source>

Low Number

Put Switch statement inside a for loop

<source lang="csharp">using System; class MainClass {

  static void Main()
  {
     for (int x = 1; x < 6; x++)
     {
        switch (x)                        
        {
           case 2:                        
              Console.WriteLine("x is {0} -- In Case 2", x);
              break;                      
           case 5:                        
              Console.WriteLine("x is {0} -- In Case 5", x);
              break;                      
           default:                       
              Console.WriteLine("x is {0} -- In Default case", x);
              break;                      
        }
     }
  }

}</source>

x is 1 -- In Default case
x is 2 -- In Case 2
x is 3 -- In Default case
x is 4 -- In Default case
x is 5 -- In Case 5

Switch with only default

<source lang="csharp">using System; class MainClass {

  static void Main()
  {
     for (int x = 1; x < 4; x++)
     {
        switch (x)
        {
           default:
              Console.WriteLine("x is {0} -- In Default case", x);
              break;
        }
     }
  }

}</source>

x is 1 -- In Default case
x is 2 -- In Default case
x is 3 -- In Default case

Switch without Default

<source lang="csharp">using System; class MainClass {

  static void Main()
  {
     for (int x = 1; x < 6; x++)
     {
        switch (x)
        {
           case 5:
              Console.WriteLine("x is {0} -- In Case 5", x);
              break;
        }
     }
  }

}</source>

x is 5 -- In Case 5

The switch Statement

The general form of the switch statement is


<source lang="csharp">switch(expression) {

  case constant1:
      statement sequence 
      break;
  case constant2:
      statement sequence 
      break;
  case constant3:
      statement sequence 
      break;
  .
  .
  .
  default:
     statement sequence
     break;

}</source>

  1. The switch expression must be of an integer type, such as char, byte, short, or int, or of type string .
  2. The default statement sequence is executed if no case constant matches the expression.
  3. The default is optional.
  4. If default is not present, no action takes place if all matches fail.
  5. When a match is found, the statements associated with that case are executed until the break is encountered.

The switch statement with a user input from keyboard

<source lang="csharp">using System;

public class MainClass {

   public static void Main( ) {
       Console.WriteLine("Please make your selection");
     Console.WriteLine("1 Hamburger");
     Console.WriteLine("2 Cheese Burger");
     Console.WriteLine("3 Fish");
     int Selection = int.Parse( Console.ReadLine( ) );
     switch( Selection ) {
       case 1:
         Console.WriteLine("Hamburger");
         break;
   
       case 2:
         Console.WriteLine("Cheese Burger");
         break;
   
       case 3:
         Console.WriteLine("Fish");
         break;
   
       default:
         Console.WriteLine("Unknown choice");
         break;
     }
   }

}</source>

Please make your selection
1 Hamburger
2 Cheese Burger
3 Fish
1
Hamburger

Use a char to control the switch.

<source lang="csharp">using System;

class MainClass {

 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>

ch is A
ch is B
ch is C
ch is D
ch is E