04 使用判断语句

1.声明布尔变量

和现实世界不同,程序世界的每一件事情要么黑,要么白;要么对,要么错;要么真,要么假。例如,假定创建整数变量X,把值99赋给它,然后问:“x中包含值99吗?”答案显然是肯定的。如果问:“X小于10吗?”答案显然是否定的。这些正是布尔表达式的例子。布尔表达式肯定求值为true或false。

bool变量只能容纳两个值之一:true或false。例如以下语句声明bool变量areYouReady,将true值赋给它,并在控制台上输出其值:

bool areYouReady;

areYouReady = true;

Console.WriteLine(areYouReady);  //在控制台输出True

 

2.使用布尔操作符

2.1理解相等和关系操作符

两个更常用的布尔操作符是相等(==)和不等(!=)操作符。这两个二元操作符判断一个值是否与相同类型的另一个值相等,结果是bool值。下表演示这些操作符,以int变量age为例。

注:不要混淆相等操作符(==)和赋值操作符(=)。表达式x==y比较x和y,两个值相等就返回true。而表达式x=y是将y的值赋给x。

与==和!=密切相关的是关系操作符,它们判断一个值是小于还是大于同类型的另一个值。下表演示了这些操作符。

2.2理解条件逻辑操作符

逻辑与:&&

逻辑或:||

作用:将两个布尔表达式或值合并成一个布尔结果。

注意:只有作为操作数的两个布尔表达式都为true,操作符&&的结果才为true;而只要两个操作数任何一个为true,操作符||的求值结果就为true

例如:

bool flag ;

flag1 = (6>5) && (2>1);//true

flag2 = (6<5) || (2>1);//true

 

2.3短路求值

操作符&&和||都支持短路求值。即有时根本没必要两个操作数都求值。

总结:

&&:假定左操作数求值为false,整个表达式的结果肯定是false,无论右操作数的值是什么。

||:假定左侧的布尔表达式求值为true,则整个表达式的结果肯定是true。

 

2.4操作符的优先级和结合性总结

见下表:

注意:操作符&&和||的优先级不同,前者高于后者。

 

3.使用if语句做出判断

3.1理解if语句的语法

if语句的语法如下所示(if和else是C#关键字)

if (booleanExpression)

    statement - 1;

else

    statement - 2;

如果booleanExpression(布尔表达式)求值为true,就运行statement - 1;否则运行statement - 2。else关键字和后续的statement - 2是可选的。如果没有else子句,而且booleanExpression为false,那么什么事情都不会发生,程序继续执行if语句之后的代码。

 

3.2使用代码块分组语句

在前面的if语法中。If(booleanExpression)后面只有一个语句,关键字else后面也只有一个语句。但经常要在布尔表达式为true的前提下执行两个或更多语句。这时可将要运行的语句分组到新方法中,然后调用方法。但更简单的做法是将语句分组到代码块中。代码块是用大括号封闭的一组语句。

下列两个语句将seconds重置为0,并使minutes递增。这两个语句被放到代码块中。如果seconds的值等于59,整个代码块都会执行:

int seconds = 0;

int minutes = 0;

…

if(seconds == 59)

{

    seconds = 0;

    minutes++;

}

else

{

    seconds++;

}

3.3嵌套if语句

举例:

if(day == 0)

{

    dayName = "Sunday";

}

else if(day == 1)

{

    dayName = "Monday";

}

//…

else if(day == 6)

{

    dayName ="Saturday"

}

else

{

    dayName = "unknown"

}

4.使用switch语句

4.1理解switch语句的语法

语法:

switch( controllingExpression)

{

    case constantExpression:

    statements

    break;

    case constantExpression:

    statements

    break;

    …

    default:

    statements

    break;


}

例如,前面的嵌套if语句可改写成以下switch语句:

switch(day)

{

    case 0:

    dayName = "Sunday";

    break;

    case 1:

    dayName = "Sunday";

    break;

    …

    default:

    dayName = "Unknown";

    break;

}

4.2遵循switch语句的规则

switch语句很有用,但使用须谨慎。switch语句要严格遵循以下规则。

(1)switch语句的控制表达式只能是某个整型(int,char,long等)或string。其它任何类型(包括float和double类型)只能用if语句。

(2)case标签必须是常量表达式

(3)case标签必须唯一,不允许两个case标签具有相同功能

(4)可以连续写多个case标签(中间不能插额外的语句),指定在多种情况下都运行相同的语句。如果像这样写,最后一个case标签之后的代码将适用于所有case。但假如两个标签之间有额外的代码,就不能从第一个标签贯穿(也称直通)到第二个标签,编译器会报错。例如:

switch(trumps)

{

    case Hearts:

    case Diamonds:   //允许直通——标签之间无额外代码

    color = "Red";   //Hearts和Diamonds两种情况都执行相同的代码

    break;

    case Clubs:

    color = "Black";

    case Spades:   //出错——标签之间有额外代码

    color = "Black";
    
    break;

}
发布了46 篇原创文章 · 获赞 53 · 访问量 3718

猜你喜欢

转载自blog.csdn.net/qq_38992372/article/details/104976237