Keep on going never give up.

Let's Go

C# 学习笔记(6)分支语句

C#Lonely2019-04-26 18:54:0038次0条

C#语句可以是以分号为结尾的单行语句,也可以是被括入语句块的多行语句。这里说的语句块,既包含在括号{ }中的语句结构,一个语句块中可以嵌入其他语句块。

C#语句中包含很多类型,如前面所学习的声明语句、表达式语句,还有条件语句(分支语句)、跳转语句、循环语句(迭代语句)、异常处理语句等,C#中的流程语句主要分:分支语句、迭代语句、跳转语句三类。下面来学习分支语句。分支语句的功能是根据一个或者多个指定条件来执行不同的代码块,C#中的分支语句括if语句、switch语句和三元运算符。

1、if语句

if语句会对条件进行判断,当指定条件为布尔值true时将执行某一个代码块,为false时则执行另外一个代码块。if语句经常和else语句、else if语句配合使用。

语法:

if(条件判断表达式)  //“条件判断表达式”结果为true时则执行下面要执行的语句,否则不执行该语句

{

    //要执行的语句

}

代码示例:

// if语句单独使用
//老婆给当程序员的老公打电话:“买一斤包子带回来,如果看到卖西瓜的,买一个。” 当晚,程序员老公手捧一个包子进了家门, 老婆怒道:“你怎么就买了一个包子?!” 老公答曰:“因为看到了卖西瓜的。”
bool mybool=false; 
string result="买一斤包子";
if(!mybool) //看见了卖西瓜的
{
    result="买一个包子";
}


// if else 语句一起使用
int money = 5;
if(money >= 100)
{
    Console.WriteLine("吃大餐");
}
else
{
    Console.WriteLine("吃泡面");
}


// if 与 else if 语句一起使用
int a =100;
int b =50;
if (a < b)
{
    Console.WriteLine("a < b");
}
else if (a == b) //else if 保证只执行其中一条语句;
{
    Console.WriteLine("a == b");
}          
else //如果前面的if语句一条也没有执行,那就执行else语句;如果执行了其中一条if语句,那就不会执行else语句;
{
    Console.WriteLine("a > b");
}
Console.ReadKey();

if语句特别适合判断一些连续值,可与else或else if 配合使用。


2、switch语句

switch语句与if语句类似,它同样是根据测试值来有条件地执行代码。

语法:

switch(表达式)

{

    case 常量表达式1: 

             执行语句; 

             break;

    case 常量表达式2: 

             执行语句; 

             break;

    case 常量表达式3: 

             执行语句; 

             break;

    ……(更多的case语句)

    default:

            执行语句; 

             break;

}

从上面的语法结构可以看出,switch语句可以包含任意数量的case语句,但任何两个case语句不能右相同的值,每个case语句之后又必须以break;语句作为结束(case语句中没有代码的情况除外)。

代码示例:

//分支语句之switch语句
//例:输入1显示星期一,以此类推
Console.Write("请输入1-7中的数字:");
int week = int.Parse(Console.ReadLine());
switch (week) //switch (表达式)
{
    case 1: Console.WriteLine("星期一"); break; //case 常量表达式:条件语句;break结束;
    case 2: Console.WriteLine("星期二"); break;
    case 3: Console.WriteLine("星期三"); break;
    case 4: Console.WriteLine("星期四"); break;
    case 5: Console.WriteLine("星期五"); break;
    case 6: Console.WriteLine("星期六"); break;
    case 7: Console.WriteLine("星期日"); break;
    default: Console.WriteLine("您的输入有误!"); break; //default:条件语句;break结束;
}


//例:判断一年中每个月份的天数
//31天的有:1、3、5、7、8、10、12
//30天的有:4、6、9、11
//2月28或29天
Console.Write("请输入1-12月来判断每个月天数:");
int month = int.Parse(Console.ReadLine());
switch (month)
{
    case 2: Console.WriteLine("2月份为28天,闰年为19天");break;
    case 4:
    case 6:
    case 9:
    case 11:
    Console.WriteLine("本月份为30天");break;
    default: Console.WriteLine("本月份为31天");break;
}
Console.ReadKey();

switch语句特别适合判断一些离散的值,在使用时候要注意每个case语句之后都必须有break语句,可配合default语句使用


(三)、三元运算符

三元运算符 (?:),三元运算符结构:条件判断表达式?(问号)成立时执行的语句:(冒号)不成立时执行的语句;(分号)

三元运算符适用的条件:只适用于判断具有两个结果的情况,三元运算符比较适用于简单的赋值语句,只适用于判断具有两个结果的情况,可读性较差;

代码示例:

//分支语句之三元运算符
//例:判断输入数值与10的关系,<10 提示小于10,<=10 提示或大于等于10;
Console.WriteLine("请输入一个数值判断与10的关系,<10 提示小于10,<=10 提示或大于等于10:");
int num = int.Parse(Console.ReadLine());
Console.WriteLine(num <10?"您输入的数值小于10":"您输入的数值大于或等于10");
Console.ReadKey();





暗锚,解决锚点偏移

文章评论

    嘿,来试试登录吧!