C#-switch-Anweisung
C#-Switch-Anweisung
In diesem Artikel erfahren wir mehr über switch-Anweisungen in C# und wie man sie mit Beispielen verwendet.
Die Switch-Anweisung kann verwendet werden, um die if...else if-Anweisung in C# zu ersetzen. Der Vorteil der switch over if...else if-Anweisung ist, dass die Codes mit switch viel sauberer und lesbarer aussehen.
Die Syntax der switch-Anweisung lautet:
switch (variable/expression) { case value1: // Statements executed if expression(or variable) = value1 break; case value2: // Statements executed if expression(or variable) = value1 break; ... ... ... ... ... ... default: // Statements executed if no case matches }
Die switch-Anweisung wertet den Ausdruck aus (oder Variable ) und vergleichen Sie seinen Wert mit den Werten (oder dem Ausdruck) jedes Falls (value1 , Wert2 , …). Wenn es den übereinstimmenden Wert findet, werden die Anweisungen in diesem Fall ausgeführt.
Wenn jedoch keiner der obigen Fälle mit dem Ausdruck übereinstimmt, werden die Anweisungen in default
Block ausgeführt wird. Die Standardanweisung am Ende von switch ähnelt dem else-Block in der if else-Anweisung.
Ein Problem mit der switch-Anweisung ist jedoch, dass, wenn der passende Wert gefunden wird, alle nachfolgenden Anweisungen bis zum Ende des switch-Blocks ausgeführt werden.
Um dies zu vermeiden, verwenden wir break
Erklärung am Ende jedes Falles. Die break-Anweisung hält das Programm davon ab, nicht übereinstimmende Anweisungen auszuführen, indem die Ausführung der switch-Anweisung beendet wird.
Um mehr über break-Anweisungen zu erfahren, besuchen Sie C# break-Anweisung .
Beispiel 1:C#-Switch-Anweisung
using System;
namespace Conditional
{
class SwitchCase
{
public static void Main(string[] args)
{
char ch;
Console.WriteLine("Enter an alphabet");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch))
{
case 'a':
Console.WriteLine("Vowel");
break;
case 'e':
Console.WriteLine("Vowel");
break;
case 'i':
Console.WriteLine("Vowel");
break;
case 'o':
Console.WriteLine("Vowel");
break;
case 'u':
Console.WriteLine("Vowel");
break;
default:
Console.WriteLine("Not a vowel");
break;
}
}
}
}
Wenn wir das Programm ausführen, lautet die Ausgabe:
Enter an alphabet X Not a vowel
In diesem Beispiel wird der Benutzer aufgefordert, ein Alphabet einzugeben. Das Alphabet wird mit ToLower()
in Kleinbuchstaben umgewandelt Methode, wenn sie in Großbuchstaben geschrieben ist.
Dann prüft die switch-Anweisung, ob das vom Benutzer eingegebene Alphabet a, e, i, o or u
ist .
Wenn einer der Fälle zutrifft, Vowel
wird gedruckt, andernfalls geht die Steuerung zum Standardblock und Not a vowel
wird als Ausgabe ausgegeben.
Da die Ausgabe für alle Vokale gleich ist, können wir die Fälle wie folgt verbinden:
Beispiel 2:C# switch-Anweisung mit gruppierten Fällen
using System;
namespace Conditional
{
class SwitchCase
{
public static void Main(string[] args)
{
char ch;
Console.WriteLine("Enter an alphabet");
ch = Convert.ToChar(Console.ReadLine());
switch(Char.ToLower(ch))
{
case 'a':
case 'e':
case 'i':
case 'o':
case 'u':
Console.WriteLine("Vowel");
break;
default:
Console.WriteLine("Not a vowel");
break;
}
}
}
}
Die Ausgabe beider Programme ist gleich. Im obigen Programm geben alle Vokale die Ausgabe Vowel
aus und bricht die switch-Anweisung ab.
Obwohl die switch-Anweisung den Code sauberer aussehen lässt als die if...else if-Anweisung, ist switch auf die Arbeit mit begrenzten Datentypen beschränkt. Switch-Anweisung in C# funktioniert nur mit:
- Primitive Datentypen:bool, char und integraler Typ
- Aufzählungstypen (Enum)
- String-Klasse
- Nulable-Typen der oben genannten Datentypen
Beispiel 3:Einfaches Taschenrechnerprogramm mit C#-switch-Anweisung
using System;
namespace Conditional
{
class SwitchCase
{
public static void Main(string[] args)
{
char op;
double first, second, result;
Console.Write("Enter first number: ");
first = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter second number: ");
second = Convert.ToDouble(Console.ReadLine());
Console.Write("Enter operator (+, -, *, /): ");
op = (char)Console.Read();
switch(op)
{
case '+':
result = first + second;
Console.WriteLine("{0} + {1} = {2}", first, second, result);
break;
case '-':
result = first - second;
Console.WriteLine("{0} - {1} = {2}", first, second, result);
break;
case '*':
result = first * second;
Console.WriteLine("{0} * {1} = {2}", first, second, result);
break;
case '/':
result = first / second;
Console.WriteLine("{0} / {1} = {2}", first, second, result);
break;
default:
Console.WriteLine("Invalid Operator");
break;
}
}
}
}
Wenn wir das Programm ausführen, lautet die Ausgabe:
Enter first number: -13.11 Enter second number: 2.41 Enter operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
Das obige Programm nimmt zwei Operanden und einen Operator als Eingabe vom Benutzer und führt die Operation basierend auf dem Operator aus.
Die Eingaben werden dem Benutzer mit dem ReadLine()
entnommen und Read()
Methode. Weitere Informationen finden Sie unter Grundlegende C#-Eingabe und -Ausgabe.
Das Programm verwendet die Switch-Case-Anweisung zur Entscheidungsfindung. Alternativ können wir if-else if Ladder verwenden, um dieselbe Operation auszuführen.
C Sprache