我们所介绍的第一个选择语句是\语句,它有三种基本形式:单条选择, 如果/否则,以及多情形选择。 1.清单3-1. IF语句的格式:IfSelection.cs
using System; class IfSelect { public static void Main() { string myInput; int myInt; Console.Write(\myInput = Console.ReadLine(); myInt = Int32.Parse(myInput); // Single Decision and Action with brackets if (myInt > 0) { Console.WriteLine(\zero.\} // Single Decision and Action without brackets if (myInt < 0) Console.WriteLine(\myInt); // Either/Or Decision if (myInt != 0) { Console.WriteLine(\zero.\} else { Console.WriteLine(\myInt); } // Multiple Case Decision if (myInt < 0 || myInt == 0) { Console.WriteLine(\number {0} is less than or equal to zero.\} else if (myInt > 0 && myInt <= 10) { Console.WriteLine(\number {0} is between 1 and 10.\myInt); } else if (myInt > 10 && myInt <= 20) { Console.WriteLine(\20.\} else if (myInt > 20 && myInt <= 30) { Console.WriteLine(\30.\} else { Console.WriteLine(\number {0} is greater than 30.\myInt); } } } 说明
1.清单3-1中的IF语句的各种格式都使用了同一个输入变量\。
这是从用户获得交互内容的另一种方式。我们首先输出一行信息:\到控制台。\dLine()\语句使得程序等待来自用户的输入,一旦用户输入
一个数字,按回车键之后,该数字以字符串的形式返回到\yInput\变量中,由于我们需要的是一个整数,所以需要转换变量\成整型数据。用命令\t)\即可完成。 (Int32 等数据类型将在后面的课程中加以介绍。) 转换结果放到\变量中,这是个整数类型。 2.有了我们所需要的类型的数据,就可以用\语句来进行条件判断了。
对于第一种形式的IF语句,格式为: if (boolean expression) { statements }。该语句必须以关键字\开始。之后,括号中为布尔表达式。该布尔表达式必须计算出一个true或者false值。在本例中,我们检查用户的输入,看看输入值是否大于0,如果表达式运算结果为true,就执行大括号中的语句。(我们把大括号之间的语句部分称为\。) 块中有一个或者多个语句。如果布尔表达式的值为false,我们就忽略块中的语句,直接执行块后面的语句。
3.除了没有块之外,第二种\语句的格式非常类似于第一种。
因此,如果布尔表达式为true,将会执行布尔表达式之后的第一条语句。当布尔表达式的值为false,布尔表达式之后的
第一条语句将被忽略掉,而直接执行其后的程序语句。如果你只有一条语句需要执行,就用该格式的\语句。如果你打算在布尔表达式的值为true时,执行两条或者两条以上的语句,就必须把它们放到块中。我个人的建议是:无论需要执行几条语句,要养成把if语句放到块中的习惯, 这就使得你避免犯如下错误:当添加了一条语句之后,忘记了添加一对括号。
4.大多数时候,你需要作出如下选择:当条件满足时做一件事,否则做另外一件事。
清单3-1中,程序演示了这种if语句格式的用法。 当布尔表达式为true时, 就立刻执行\后面的那条语句, 而当布尔表达式为false时,就执行\关键字后面的语句。
5.当要计算多个布尔表达式时,你可以使用if/else if/else 这种格式,上面的例子程序演示了这种形式,从关键字\开始, 一旦布尔表达式为真,就执行if后面的块。但是,这一次,在组合关键字\后面还可以进行多个条件的判断。\if\语句后面也有个布尔表达式,一旦该布尔表达式的值为true,就会执行紧接其后的块。这种情形可以一直持续下去,直到所有的情况都已经计算出来,但是整个\序列必