黑马程序员----C#中的流程控制语句之分支语句

  ----------------------  ASP.Net+Android+IO开发S 、  .Net培训、期待与您交流! ----------------------


       

       分支语句主要包括:if语句和switch--case语句。

(一),if语句

                  If语句是最常用的条件分支语句,它是根据布尔表达式的值(truefalse)选择要执行的语句序列,使用时注意else应与最近的if语句匹配。

  常见形式有以下几种:

        (1),单独使用if语句,不加else语句

                 语法:

                      if(布尔表达式)

                      {

                                  表达式为真时要执行的语句序列;

                     } 

                执行过程:首先判断布尔表达式的结果,如果为true,则执行语大括号里的语句序列,如果为false,则跳过大括号,执行后面的语句。

 

               例如:

static void Main(string[] args)
        {
            string name1 = "abc";
            string name2 = "qwe";
            //判断两个名字是否相等
            if (name1 == name2)
            {
                //如果相等,就输出name1的名字
                Console.WriteLine(name1);
            }
            Console.ReadKey();
        }


        (2),if语句和else语句配套使用的单条件测试

                 语法:

                      if(布尔表达式)

                      {

                                布尔表达式为真时要执行的语句序列;

                      }

                     else

                     {

                                布尔表达式为假时要执行的语句序列;

                     }

               执行过程:如果布尔表达式为true,则程序执行if带的语句序列,并且跳过else带的语句序列;如果布尔表达式为false,则跳过if语句带的语句序列,执行else带的语句序列;

              例如:

 

static void Main(string[] args)
        {
            string name1 = "abc";
            string name2 = "qwe";
            //判断两个名字是否相等
            if (name1 == name2)
            {
                //如果相等,就输出name1的名字
                Console.WriteLine(name1);
            }
            else
            {
                //如果不相等,就输出name1和name2的名字
                Console.WriteLine(name1+name2);
            }
            Console.ReadKey();
        }


        3),else块中嵌套if语句的多条件测试

           语法:

                if(布尔表达式1)

               {

                        布尔表达式1为真的时候执行的语句序列;

               }

              else if(布尔表达式2)

              {

                      布尔表达式2为真的时候执行的语句序列;

              }

             else

            {

                      所有条件都为假时执行的语句序列;

            }

       执行过程:is-else-if语句中,只有当上一个条件不成立时,才会进入下一个if语句并执行if语句后面的条件判断。一旦有一个if后面的条件为true,则执行此if所带的语句序列,语句序列执行完成后,程序就跳出if-else-if结构。如果所有的if条件都不成立,则如果最后又else,则执行else所带的语句序列,否则什么都不执行。 

        例如:

  

static void Main(string[] args)
        {
            int number1 = 12;
            int number2 = 23;
            //判断两个数的大小以及是否相等
            if (number1 == number2)
            {//如果相等
                Console.WriteLine("两个数相等");
            }
            else if (number1 > number2)
            { //如果数1大于数2
                Console.WriteLine("数1大于数2");
            }
            else
            {//如果数1小于数2
                Console.WriteLine("数1小于数2");
            }
            Console.ReadKey();
        }

(二),switch-case语句

                 当某一个表达式有多个可选值需要进行处理时,使用if语句会降低程序的可读性,这种情况下可以使用switch语句。

                 语法: 

                      switch(表达式)

                      {

                              case  1

                                          语句序列1

                              Break

                             case  2

                                       语句序列2

                             Break

                            default

                                    语句序列3

                              Break

                    }

             执行过程:首先计算表达式,然后根据表达式的结果与case后面的值进行匹配,如果有匹配项,则执行匹配项后面的语句序列,直到break语句跳出switch-case,如果所有的case值都不匹配,那么有default的则执行default后面的语句序列,直到break结束,如果没有default,则跳出switch-case,什么都不执行。

       If - else if switch-case的区别:

              A:相同点:

                            都可以实现分支结构。

             B: 不同点:

                           1swich:一般只能用于等值比较。

                           2if -else if:可以处理范围。

           注意:switch后的表达式与case后面的值匹配时,与default的顺序无关,只有当case后面的值没有匹配项时,才会进入default

           例如:

 

  static void Main(string[] args)
        {
            Console.WriteLine("请输入成绩:");
            //接收用户输入的信息
            string str = Console.ReadLine();
            //转换为整型
            int i = Int32.Parse(str.Trim());
            if (i > 100 || i < 0)
            {
                Console.WriteLine("成绩不在0-100范围内");
            }
            else
            {
                //利用switch进行值匹配
                switch (i / 10)
                {
                    case 10:
                        Console.WriteLine("满分,很棒");
                        break;
                    case 9:
                        Console.WriteLine("优秀");
                        break;
                    case 8:
                    case 7:
                        Console.WriteLine("良好");
                        break;
                    case 6:
                        Console.WriteLine("及格");
                        break;
                    default:
                        Console.WriteLine("不及格");
                        break;
                }
            }
            Console.ReadKey();
        }



----------------------  ASP.Net+Android+IO开发S 、  .Net培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值