关于c#:分支语句C如何使用Switch语句用法示例

在C#中, Switch语句多路分支语句。它提供了一种无效的形式, 能够依据表达式的值将执行转移到代码的不同局部。开关表达式是整数类型, 例如int, char, byte或short, 或者是枚举类型, 或者是字符串类型。查看表达式的不同状况, 而后执行一次匹配。

语法如下:

switch (expression) {

case value1: // statement sequence
     break;

case value2: // statement sequence
     break;
.
.
.
case valueN: // statement sequence
     break;

default:    // default statement sequence
}

switch执行流程图:

要记住的要点:

  • 在C#中, 不容许反复的大小写值。
  • 开关中变量的数据类型和案例的值必须是同一类型。
  • 案例的值必须是常量或文字。不容许应用变量。
  • break in switch语句用于终止以后序列。
  • 默认语句是可选的, 它能够在switch语句中的任何地位应用。
  • 不容许应用多个默认语句。

例子:

// C# program to illustrate
// switch case statement
using System;
  
public class GFG {
  
     // Main Method
     public static void Main(String[] args)
     {
         int nitem = 5;
         switch (nitem) {
  
         case 1:
             Console.WriteLine( "case 1" );
             break ;
  
         case 5:
             Console.WriteLine( "case 5" );
             break ;
  
         case 9:
             Console.WriteLine( "case 9" );
             break ;
  
         default :
             Console.WriteLine( "No match found" );
             break ;
         }
     }
}

输入如下:

case 5

为什么咱们应用Switch语句而不是if-else语句?

咱们应用switch语句而不是if-else语句, 因为if-else语句仅实用于值的大量逻辑求值。如果对更多可能的条件应用if-else语句, 则将破费更多工夫来编写并且也变得难以浏览。

例子:应用if-else-if语句

// C# program to illustrate
// if-else statement
using System;
  
class GFG {
  
     // Main Method
     public static void Main(String[] args)
     {
         // taking two strings value
         string topic;
         string category;
  
         // taking topic name
         topic = "Inheritance" ;
  
                 // using compare function of string class
         if ((String.Compare(topic, "Introduction to C#" ) == 0) || 
             (String.Compare(topic, "Variables" ) == 0) || 
             (String.Compare(topic, "Data Types" ) == 0))
         {
             category = "Basic" ;
         }
          
                 // using compare function of string class
         else if ((String.Compare(topic, "Loops" ) == 0) || 
                  (String.Compare(topic, "If Statements" ) == 0) || 
                  (String.Compare(topic, "Jump Statements" ) == 0)) 
         {
             category = "Control Flow" ;
         }
              
                 // using compare function of string class
         else if ((String.Compare(topic, "Class & Object" ) == 0) || 
                  (String.Compare(topic, "Inheritance" ) == 0) || 
                  (String.Compare(topic, "Constructors" ) == 0)) 
         {
             category = "OOPS Concept" ;
         }
          
         else 
         {
             category = "Not Mentioned" ;
         }
  
         System.Console.Write( "Category is " + category);
     }
}

输入如下:

Category is OOPS Concept

阐明:如下面的程序所示, 代码并不过分, 然而看起来很简单, 破费了更多的工夫来编写。因而, 咱们应用switch语句来节省时间并编写优化的代码。应用switch语句将提供更好的代码可读性。

例子:应用switch语句

// C# program to illustrate
// switch statement
using System;
  
class GFG {
  
     // Main Method
     public static void Main(String[] args)
     {
         // taking two strings value
         string topic;
         string category;
  
         // taking topic name
         topic = "Inheritance" ;
          
         // using switch Statement
         switch (topic)
         {
             case "Introduction to C#" :
             case "Variables" :
             case  "Data Types" :
                   
                 category = "Basic" ;
                 break ;
                  
              case "Loops" :
              case "If Statements" :
              case "Jump Statements" :
                   
                 category = "Control Flow" ;
                 break ;
                  
              case "Class & Object" :
              case "Inheritance" :
              case "Constructors" :
                   
                 category = "OOPS Concept" ;
                 break ;
                  
              // default case 
              default :
                 category = "Not Mentioned" ;
                 break ;
                  
         }
          
         System.Console.Write( "Category is " + category);
     }
}

输入如下:

Category is OOPS Concept

在Switch语句中应用goto

你也能够应用去语句代替switch语句中的break。通常, 咱们应用break语句从switch语句退出。然而在某些状况下, 须要执行默认语句, 因而咱们应用goto语句。它容许在switch语句中执行默认条件。 goto语句还用于跳转到C#程序中的标记地位。

例子:

// C# program to illustrate the
// use of goto in switch statement
using System;
  
public class GFG {
  
// Main Method
public static void Main(String[] args)
     {
         int greeting = 2;
  
         switch (greeting) {
         case 1:
             Console.WriteLine( "Hello" );
             goto default ;
         case 2:
             Console.WriteLine( "Bonjour" );
             goto case 3;
         case 3:
             Console.WriteLine( "Namaste" );
             goto default ;
         default :
             Console.WriteLine( "Entered value is: " + greeting);
             break ;
         }
     }
}

输入如下:

Bonjour
Namaste
Entered value is: 2

阐明:在下面的程序中, goto语句在switch语句中应用。首先是案例2, 即你好因为开关蕴含greeting的值为2而被打印, 而后因为goto语句的存在, 管制转移到状况3, 所以它打印Namaste, 最初将管制转移到默认条件并打印Entered值为:2 。

留神:如果你的switch语句是循环的一部分, 则也能够应用continue代替break语句中的break语句, 那么continue语句将使执行立刻返回到循环的开始。

更多C#开发相干内容请参考:lsbin – IT开发技术:https://www.lsbin.com/

查看以下更多C#相干的内容:

  • C#匿名办法:https://www.lsbin.com/3226.html
  • C# HashSet用法:https://www.lsbin.com/3133.html
  • C#办法重载:https://www.lsbin.com/474.html

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理