C#每日一课(八)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/advent86/article/details/82156543

C#判断结构

判断结构是根据一个或多个要评估或测试的条件,以及条件为真时要执行的语句和条件为假时要执行的语句

一般来说执行的流程如下:

C#中提供的判断语句有如下

  1. if语句

由一个布尔表达式后跟一个或多个语句组成

语法:

if(boolean_expr)

{

//此处为布尔表达式为真的时候要执行的语句

}

当boolean_expr为true的时候,if语句内的代码块会被执行,如果为false则,跳过if语句内的代码块执行后面的语句

visual studio中新建一个项目

文件-新建-项目

选择windows桌面-控制台应用程序

录入项目名称,点击确定

在Main方法中加入如下代码验证if语句 

int a = 1;

  if (a < 2)

  {

     /*如果if后的条件为真则执行下面代码语句*/

     Console.WriteLine("a小于2");

  }

  Console.WriteLine("a的值是:{0}", a);

  Console.ReadLine();

编译执行代码结果为如:

 

  1. if...else语句

一个if语句后面跟一个可选的else语句,else语句在布尔表达式为假时执行。

语法:

if(boolean_expr)

{

//如果布尔表达式为真会执行下面语句

}

else

{

//如果布尔表达式为假时会执行下面语句

}

在Main方法中加入如下代码:

Console.WriteLine("-------------if...else语句-------------");

if (a > 2)

{

    Console.WriteLine("a大于2");

}

else

{

    Console.WriteLine("a小于2");

}

Console.WriteLine("a的值是:{0}", a);

编译执行结果如下

if...else if...else语句

一个if语句后可以跟一个可选的else if..else语句。这可以用来测试多种条件。

当使用if...else if...else语句时,有如下几点需要注意:

  1. 一个if后可以跟0个或1个else,它必须在任何一个else if之后
  2. 一个if后可以跟0个或多个else if,它必须在else之前
  3. 从前至后,一旦某个else if匹配成功,其他的else if或else就不会再去做测试

语法:

if(boolean_expr 1)

{

//当布尔表达式1为真的时候执行

}

else if(boolean_expr 2)

{

//当布尔表达式为2时执行

}

else if(boolean_expr 3)

{

//当布尔表达式为3时执行

}

else

{

//当前面的所有布尔表达式都不成立时执行

}

 

在Main中加入如下代码:

Console.WriteLine("-------------if else if eles if... else语句-------------");

a = 50;

if (a == 10)

{

     Console.WriteLine("a的值是10");

}

else if (a == 20)

{

    Console.WriteLine("a的值是20");

}

else

{

    Console.WriteLine("没有匹配的值!");

}

Console.WriteLine("a的准确值是:{0}",a);

编译运行的结果如下:

嵌套if语句

可以在一个if或else if内部再使用另一个if或else if语句

语法

if(boolean_expr1)

{

//当表达式1为真的时候执行

if(boolean_expr2)

{

//当表达式2为真的时候执行

}

}

在Main方法中加入如下代码:

Console.WriteLine("----------if嵌套-----------");

int b = 100;

int c = 200;

if (b == 100)

{

   //条件满足则嵌套执行下面的判断

   if (c == 200)

   {

       Console.WriteLine("b的值是100,c的值是200");

    }

}
Console.WriteLine("b的值是:{0}",b)
Console.WriteLine("c的值是:{0}", c);

 

编译执行结果如下:

 

switch语句

一个switch语句允许测试一个变量等于多个值时的情况。每个值称为一个case,并且被测试的变量会对每个switch case进行检查。

语法

switch(expr)

{

case constant_expr1:

statement(s);

break;

case constant_expr2:

statement(s);

break;

//default为可选语句,在所有的case不满足时执行

default:

statement(s);

break;

}

使用switch语句的规规

  1. switch语句后的expr必须是一个整型或枚举类型,或者是一个class类型,并且这个class类型必须有一个转换函数可以把它转为整型或枚举
  2. 在switch中可以有多个case,每一个case后跟一个比较值和一个冒号
  3. case后的constant_expr必须与switch中变量有相同的数据类型,并且必须是一个常量
  4. 当被测试的变量等于case中常量时,case后跟的语句会被执行,直到遇到break语句
  5. 当遇到break语句时,switch终止,控制流会跳到switch语句后的下一行执行
  6. 不是每一个case都必须要有break语句,比如当case语句为空,则可以不包含break语句,控制流会继续后面的case直到遇到break为止
  7. C#不允许从一个开关部分继续执行到 下一个开关部分,如果case语句中有处理语句必须有break语句或者其它的跳转语句
  8. 一个switch可以有可选的default语句,它表示所有的case都不为真时执行,并且default中的break语句不是必须的
  9. C#不支持从一个case标签贯穿到另一个case标签。如果要贯穿则需要使用goto语句

 

在Main方法中添加如下代码

Console.WriteLine("-------------switch语句--------------");



    char grade = 'E';

    switch (grade)

    {

        case 'A':

         Console.WriteLine("您的结果是A,优秀!");

        break;

        case 'B':

         Console.WriteLine("您的结果是B,良好!");

             break;

       case 'C':

             Console.WriteLine("您的结果是C,一般!");

             break;

      case 'D':

             Console.WriteLine("您的结果是D,不合格!");

             break;

     default:

             Console.WriteLine("未查询到测评结果!请重新测评!");

             break;

}

编译运行后结果如下:

 

嵌套switch

可以把一个switch作为一个外部switch,再在其内部使用一个switch语句。

语法哪下:

switch(ch1)

{

caes ‘A’:

Console.WriteLine(“这个A是外部switch的一部分”);

switch(ch2)

{

case ‘A’:

Console.WriteLine(“这个A是内部switch的一部分”);

break;

case ‘B’:

/*内部B case 代码*/

}

break;

 case ‘B’:

/*外部B case 代码*/

}

 

三目运算符:?:

语法:

expr1?expr2:expr3;

其中表达式的值是由expr1的值来确定的,如果expr1的值是真,则计算expr2的值,如果为假则计算expr3的值作为整个表达式的值

在Main方法中加入如下代码: 

Console.WriteLine("--------------?:运算符--------------");

int x = 1, y = 2, max;

//使用三目运算符来取两个整数中的最大值

max = x > y ? x : y;

Console.WriteLine("x={0},y={1},两者中最大值是:{2}", x, y, max);

编译执行后的结果是:

猜你喜欢

转载自blog.csdn.net/advent86/article/details/82156543