Csharp/C Sharp/Language Basics/Switch
Содержание
- 1 Demonstrate the switch
- 2 Empty cases can fall through
- 3 Illustrates the use of the switch statement
- 4 Illustrates the use of the switch statement to compare string values
- 5 Simulate a conveyor belt
- 6 Switch based console menu
- 7 Switch for int type
- 8 Switch statement containing a branch with no statements: causes a "fall-through" to the next branch
- 9 Switch Values
- 10 Switch Values Fall Through
- 11 Switch With Default Values
- 12 Use a char to control the switch
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>
<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>