(原创)c#学习笔记04--流程控制03--分支03--switch语句

4.3.3 switch语句

  switch 语句非常类似于if 语句,因为它也是根据测试的值来有条件地执行代码。但是,switch语句可以一次将测试变量与多个值进行比较,而不是仅测试一个条件。这种测试仅限于离散的值,而不是像“大于X”这样的子句,所以它的用法有点不同,但它仍是一种强大的技术。

  switch语句的基本结构如下:

    switch (<testVar>)

    {

    case <comparisonVal1>:

      <code to execute if <testVar> == <comparisonVal1> >

      break;

    case <comparisonVal2>:

      <code to execute if <testVar> == <comparisonVal2> >

      break;

    ...

    case <comparisonValN>:

      <code to execute if <testVar> == <comparisonValN> >

      break;

    default:

      <code to execute if <testVar> != comparisonVals>

      break;

    }

  <testVar>中的值与每个<comparisonValX>值(在case语句中指定)进行比较,如果有一个匹配,就执行为该匹配提供的语句。如果没有匹配,就执行default部分中的代码。

  执行完每个部分中的代码后,还需有另一个语句break。在执行完一个case块后,再执行第二个case语句是非法的。

  这里的break语句将中断switch语句的执行,而执行该结构后面的语句。

  note: 在此,C#与C++是有区别的,在C++中,可以在运行完一个case语句后,运行另一个case语句。

  在C#代码中,还有一种方法可以防止程序流程从一个case语句转到下一个case语句。即使用return语句,中断当前函数的运行,而不是仅中断switch结构的执行(详见第6章)。也可以使用goto语句(如前所述),因为case语句实际上是在C#代码中定义的标签。

  一个case语句处理完后,不能自由进入下一个case语句,但这个规则有一个例外。如果把多个case 语句放在一起(堆叠它们),其后加一个代码块,实际上是一次检查多个条件。如果满足这些条件中的任何一个,就会执行代码,例如:

    switch (<testVar>)

    {

    case <comparisonVal1>:

    case <comparisonVal2>:

      <code to execute if <testVar> == <comparisonVal1> or <testVar> == <comparisonVal2> >

      break;

    ...
  注意,这些条件也应用到default语句。

  每个<comparisonValX>都必须是一个常数值。一种方法是提供字面值

switch (myInteger)
{
case 1:
  <code to execute if myInteger == 1>
  break;
case -1:
  <code to execute if myInteger == -1>
  break;
default:
  <code to execute if myInteger != comparisons>
  break;
} 

  另一种方式是使用常量。常量与其他变量一样,但有一个重要的区别:它们包含的值是固定不变的。

  声明常量需要指定变量类型和关键字const,同时必须给它们赋值。

const int intTwo = 2; 

  如果编写如下代码:

const int intTwo;
intTwo = 2; 

  就会产生一个编译错误。如果在最初的赋值之后,试图通过任何方式改变常量的值,也会出现编译错误。

  下面演示下switch语句使用示例,代码如下:

static void Main(string[] args)
{
  const string myName = "karli";
  const string sexyName = "angelina";
  const string sillyName = "ploppy";
  string name;
  Console.WriteLine("What is your name?");
  name = Console.ReadLine();
  switch (name.ToLower())
  {
  case myName:
    Console.WriteLine("You have the same name as me!");
    break;
  case sexyName:
    Console.WriteLine("My, what a sexy name you have!");
    break;
  case sillyName:
    Console.WriteLine("That’s a very silly name.");
    break;
  }
  Console.WriteLine("Hello {0}!", name);
  Console.ReadKey();
} 

  运行结果如下:

时间: 2024-10-12 04:43:45

(原创)c#学习笔记04--流程控制03--分支03--switch语句的相关文章

python学习笔记3—流程控制if、for、while

流程控制if if 语句 if expression: statement(s) else else语句: if 语句,else语句 if expression: statement(s) else: statement(s) elif语句: if expression1: statement1(s) elif expression2(s): statements2(s) else: statement2(s) 注:Python使用缩进作为其语法分组的方法,建议使用4个空格 逻辑值(bool)包

【原】Java学习笔记005 - 流程控制

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // 程序的流程控制(流程结构):顺序结构.选择结构.循环结构 6 7 // 顺序结构:从上向下,顺序执行 8 System.out.println("出生..."); 9 System.out.println("享受人生..."); 10 System.out.print

No2. 学习笔记_流程控制

1 import java.util.Scanner; 2 public class HelloForWhile { 3 4 /** 5 * 文档注释,程序名称:HelloForWhile 流程控制 开发时间:2016-03-07 作者:嘿嘿 6 * */ 7 public static void main(String[] args) { 8 // TODO Auto-generated method stub 9 System.out.println("test"); 10 int

JavaScript学习笔记——javascript流程控制

javascript流程控制流程:就是程序代码的执行顺序.流程控制:通过规定的语句让程序代码有条件的按照一定的方式执行. 一.顺序结构 按照书写顺序来执行,是程序中最基本的流程结构. 二.选择结构(分支结构.条件结构) 根据给定的条件有选择的执行形相应的语句. (1) if else if else 1.单路分支 //条件可以是表达式也可以是任何的数据类型 //大括号会把他里面的代码当作一个整体来运行,如果只有一条语句,可以省略大括号 if(条件){ 条件成立执行的语句 } 2.双路分支 if(

(原创)c#学习笔记04--流程控制03--分支01--三元运算符

4.3  分支 要跳转到的代码行由某个条件语句来控制.这个条件语句使用布尔逻辑,对测试值和一个或多个可能的值进行比较. 本节介绍C#中的3种分支技术: ?  三元运算符 ?  if语句 ?  switch语句 4.3.1  三元运算符 一元运算符有一个操作数,二元运算符有两个操作数,所以三元运算符有3个操作数.其语法如下: <test> ? <resultIfTrue>: <resultIfFalse> 其中,计算<test>可得到一个布尔值,运算符的结果根

【原】Java学习笔记007 - 流程控制

1 package cn.temptation; 2 3 public class Sample01 { 4 public static void main(String[] args) { 5 // for循环 6 // 格式 7 // for (int i = 初始值; i < value; i++) { 8 // 9 // } 10 // 口诀:左初值.右步长.条件在中间.处理在内部 11 // 1.左初值:声明一个变量并给变量赋值 12 // 2.右步长:控制左边声明的变量的变化幅度,为

Java学习笔记五——流程控制

分支结构 Java提供了两种常见的分支控制结构:if语句和switch语句. if语句 if语句使用布尔值或布尔表达式(表达式结果为布尔值),if语句有3中形式: 第一种形式: if (5 > 3) { System.out.println("5 > 3"); } 第二种形式: if (5 > 3) { System.out.println("5 > 3"); } else{ System.out.println("5 < 3

(原创)c#学习笔记04--流程控制04--循环03--for循环

4.4.3 for循环 这类循环可以执行指定的次数,并维护它自己的计数器. 要定义for循环,需要下列信息: 初始化计数器变量的一个起始值. 继续循环的条件,它应涉及到计数器变量. 在每次循环的最后,对计数器变量执行一个操作. 例如,如果要在循环中,使计数器从1递增到10,递增量为1,则起始值为1,条件是计数器小于或等于10,在每次循环的最后,要执行的操作是给计数器加1. 这些信息必须放在for循环的结构中,如下所示: for (<initialization>; <condition&

(原创)c#学习笔记04--流程控制04--循环04--循环中断和无限循环

4.4.4  循环的中断 有时需要更精细地控制循环代码的处理.C#为此提供了4个命令,其中的3个已经在其他情形中介绍过了:?  break——立即终止循环.?  continue——立即终止当前的循环(继续执行下一次循环).?  goto——可以跳出循环,到已标记好的位置上(如果希望代码易于阅读和理解,最好不要使用该命令).?  return——跳出循环及其包含的函数(参见第6章).?  break命令可退出循环,继续执行循环后面的第一行代码 4.4.5  无限循环 可以通过编写错误代码或错误的