Csharp/C Sharp/Language Basics/Switch — различия между версиями
Admin (обсуждение | вклад) м (1 версия) |
|
(нет различий)
|
Текущая версия на 11:39, 26 мая 2010
Содержание
- 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
/*
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;
}
}
}
Empty cases can fall through
/*
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;
}
}
}
Illustrates the use of the switch statement
/*
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;
}
}
}
Illustrates the use of the switch statement to compare string values
/*
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;
}
}
}
Simulate a conveyor belt
/*
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);
}
}
/*
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");
}
}
}
}
Switch for int type
/*
* 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;
}
}
}
}
Switch statement containing a branch with no statements: causes a "fall-through" to the next branch
/*
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;
}
}
}
Switch Values
/*
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.");
}
}
Switch Values Fall Through
/*
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.");
}
}
Switch With Default Values
/*
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.");
}
}
Use a char to control the switch
/*
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;
}
}
}