C# switch 语句
C# switch 语句
在本文中,我们将通过示例了解 C# 中的 switch 语句以及如何使用它们。
Switch 语句可用于替换 C# 中的 if...else if 语句。使用 switch over if...else if 语句的优点是代码看起来更干净,更易读。
switch语句的语法是:
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 }
switch 语句计算 表达式 (或变量 ) 并将其值与每个案例的值(或表达式)进行比较 (value1 , 值2 ,……)。当它找到匹配的值时,就会执行那个case里面的语句。
但是,如果以上情况都不匹配表达式,则 default
中的语句 块被执行。 switch 末尾的 default 语句类似于 if else 语句中的 else 块。
但是switch语句的一个问题是,当找到匹配的值时,它会执行它之后的所有语句,直到switch块结束。
为了避免这种情况,我们使用 break
在每个案例的末尾声明。 break语句通过终止switch语句的执行来阻止程序执行不匹配的语句。
要了解有关 break 语句的更多信息,请访问 C# break 语句 .
示例 1:C# switch 语句
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;
}
}
}
}
当我们运行程序时,输出将是:
Enter an alphabet X Not a vowel
在本例中,提示用户输入字母。使用 ToLower()
将字母转换为小写 方法如果是大写的话。
然后,switch语句检查用户输入的字母是否是a, e, i, o or u
中的任何一个 .
如果其中一种情况匹配,Vowel
打印,否则控制进入默认块和 Not a vowel
作为输出打印出来。
由于所有元音的输出都是相同的,我们可以将这些情况连接为:
示例 2:具有分组情况的 C# switch 语句
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;
}
}
}
}
两个程序的输出是一样的。在上面的程序中,所有元音都打印输出 Vowel
并从 switch 语句中中断。
尽管 switch 语句使代码看起来比 if...else if 语句更简洁,但 switch 仅限于使用有限的数据类型。 C# 中的 Switch 语句仅适用于:
- 原始数据类型:bool、char 和整型
- 枚举类型(Enum)
- 字符串类
- 上述数据类型的可空类型
示例 3:使用 C# switch 语句的简单计算器程序
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;
}
}
}
}
当我们运行程序时,输出将是:
Enter first number: -13.11 Enter second number: 2.41 Enter operator (+, -, *, /): * -13.11 * 2.41 = -31.5951
上述程序将两个操作数和一个算子作为用户的输入,并根据算子进行运算。
输入来自用户使用 ReadLine()
和 Read()
方法。要了解更多信息,请访问 C# 基本输入和输出。
该程序使用 switch case 语句进行决策。或者,我们可以使用 if-else if ladder 来执行相同的操作。
C语言