2.5 使用条件语句

  程序开发中,开发人员经常遇到选择性的问题,如用户是否注册。如果用户已经注册则允许用户登陆,否则就跳转到注册页面。这个时候,就需要在程序中使用条件语句。if是最常用的条件语句,同时,if还包括if、if else、if else if等语句用于执行复杂的条件选择。

2.5.1 if语句的使用方法
  if语句用于判断条件并按照相应的条件执行不同的代码块,if语句包括多种呈现形式,这些形式分别是if、if else、if else if。

1.声明if语句
  if语句的语法如下所示。
if(布尔值) 程序语句

  当布尔值为true,则会执行程序语句,当布尔值为false时,程序会跳过执行的语句执行,示例代码如下所示。
+展开
-C#
if (true)//使用if语句
            {
                console.writeline("ture");//为true的代码块
            }

  上述代码首先会判断if语句的条件,因为if语句的条件为true,所以if语句会执行大括号内的代码,程序运行会输出字符串true,如果将if内的条件改为false,那么程序将不会执行大括号内的代码,从而不会输出字符串true。

2.声明if else语句
i  f else语句的语法如下所示。
if(布尔值) 程序语句1 else 程序语句2
  同样,当布尔值为true,则程序执行程序语句1,但当布尔值为false时,程序则执行程序语句2,示例代码如下所示。
+展开
-C#
if (true)//使用if语句判断条件
            {
                console.writeline("ture");//当条件为真时执行语句
            }
            else//如果条件不成立则执行
            {
                console.writeline("false");//当条件为假时执行语句
            }

  上述代码中if语句的条件为true,所以if语句会执行第一个大括号中间的代码,而如果将true改为false,则if语句会执行第二个大括号中的代码。

3.声明if else if语句
  当需要进行多个条件判断是,可以编写if else if语句执行更多条件操作,示例代码如下所示。
+展开
-C#
if (month == "12")//判断month是否等于12
            {
                console.writeline("winter");//输出winter
            }
            else if (month == "7")//判断month是否等于7
            {
                console.writeline("summer");//输出summer
            }
            else if (month == "3")//判断month是否等于3
            {
                console.writeline("spring");//输出spring
            }
            else//当都不成立时执行
            {
                console.writeline("we don’t have this month");//输出默认情况
            }


  上述代码会判断相应的月份,如果月份等于12,就会执行相应的大括号中的代码,否则会继续进行判断,如果判断该月份即不是3月也不是7月,说明所有的条件都不复合,则会执行最后一段大括号中的代码。

4.使用布尔值和布尔表达式
  在if语句编写中,if语句的条件可以使用布尔值或布尔表达式,以便能够显式的进行判断,示例代码如下所示。
+展开
-C#
if (true)//使用布尔值
            {
                console.writeline("ture");//输出ture
            }

if语句的条件不仅能够由单个布尔值或表达式组成,同样也可以由多个表达式组成,示例代码如下所示。
+展开
-C#
            if (true||false)//使用多个布尔值
            {
                console.writeline("ture");//输出ture
            }

同样在编写if语句的条件时,可以使用复杂的布尔表达式进行条件约束,示例代码如下所示。
+展开
-C#
            if ((a==b)&&(b==c))//使用复杂的布尔表达式
            {
                console.writeline("a和b相等,b和c也相等"); //输出相等信息
            }


5.使用三元运算符
三元运算符(?:)是if else语句的缩略形式,比较后并返回布尔值,熟练使用该语句可以让代码变得更简练。

2.5.2 switch选择语句的使用
  switch语句根据某个传递的参数的值来选择执行的代码。在if语句中,if语句只能测试单个条件,如果需要测试多个条件,则需要书写冗长的代码。而switch语句能有效的避免冗长的代码并能测试多个条件。
1.声明switch选择语句
Switch语句的语法如下所示。
+展开
-C#
            switch (参数的值)
            {
                case 参数的对应值1: 操作1; break;
                case 参数的对应值2: 操作2; break;
                case 参数的对应值3: 操作3; break;
            }

  从上述语法格式中可以看出switch的语法格式。在switch表达式之后跟一连串case标记相应的switch块。当参数的值为某个case对应的值的时候,switch语句就会执行对应的case的值后的操作,并以break结尾跳出switch语句。若没有对应的参数时,可以定义default条件,执行默认代码,示例代码如下所示。
+展开
-C#
            int x;
            switch (x)//switch语句
            {
                case 0: Console.WriteLine("this is 0"); break; //x=0时执行
                case 1: Console.WriteLine("this is 1"); break//x=1时执行
                case 2: Console.WriteLine("this is 2"); break//x=2时执行
                default:Console.WriteLine(“这是默认情况”);break;
            }

  在上述代码中,当x等于0的时候,就会执行case 0的操作,就执行了Console.WriteLine("this is 0")。如果x等于1,语句就会执行case 1的操作。switch不仅能够通过数字进行判断,还能够通过字符进行判断。

2.使用break跳出语句
  从上述代码中可以看出,每一个操作后面都使用了一个break语句。在C/C++中,程序员可以被允许不写break而贯穿整个switch语句,但是在C#中不以break结尾是错误的,并且编译器不会通过。因为C#的switch语句不支持贯穿操作,因为C#中是希望避免在应用程序的开发中出现这样的错误。

注意:在C#中,可以使用goto语句模拟,继续执行下一个case或default。尽管在程序中可以这样做,但是会降低代码的可读性,所以不推荐使用goto语句。

3.switch的执行顺序
switch语句能够对相应的条件进行判断,示例代码下代码所示。
+展开
-C#
            int x;
            switch (x)//switch语句
            {
                case 0: Console.WriteLine("this is 0"); break//x=0时执行
                case 1: Console.WriteLine("this is 1"); break;//x=1时执行
                case 2: Console.WriteLine("this is 2"); break//x=2时执行
                default: Console.WriteLine("no one"); break//都不满足时执行
            }

  从上述代码中分析,整型变量x被声明,并初始化,执行switch语句,当x的值为0的时候,case 0之后的语句就会执行,即会执行Console.WriteLine("this is 0");执行完毕后,语句执行break跳出switch语句。当x的值等于3的,switch操作会发现在case中没有与之相等的标记,则会执行default标记并执行默认的代码块。

注意:在switch语句中,default语句并不是必须的,但是编写default是可以为条件设置默认语句。

4.使用枚举类型
  在switch表达式中,参数的类型必须为整型、字符型、字符串型、枚举类型或是能够隐式转换为以上类型的数据类型。在switch中常常会用到枚举类型,示例代码如下所示。
+展开
-C#
        enum season { spring,summer,autumn,winter }//声明枚举类型
        static void Main(string[] args)
        {
            season mySeason=season.summer;//初始化
            switch (mySeason)
            {
                case season.spring: Console.WriteLine("this is spring"); break;//mySeason=spring时
                case season.summer: Console.WriteLine("this is summer"); break;//mySeason=summer时
                case season.autumn: Console.WriteLine("this is autumn"); break;//mySeason=autumn时
                case season.winter: Console.WriteLine("this is winter"); break;//mySeason=winter时
                default: Console.WriteLine("no one"); break;
            }
            Console.ReadKey();//等待用户按键
        }

运行代码如图2-20所示。

switch中使用枚举类型
图2-20 switch中使用枚举类型


5.组合case语句
  在某些情况下,一些条件所达成的效果是相同,这就要求在switch中往往需要对多个标记使用同一语句。switch语句能够实现多个标记使用同一语句,代码如下所示。
+展开
-C#
            switch (mySeason)
            {
                case season.spring: 
                case season.summer: Console.WriteLine("this is spring and summer"); break;//组合case
                case season.autumn: 
                case season.winter: Console.WriteLine("this is autumn and winter"); break;//组合其他条件
                default: Console.WriteLine("no one"); break;//默认case
            }

加支付宝好友偷能量挖...


评论(0)网络
阅读(109)喜欢(0)Asp.Net/C#/WCF