|
本帖最后由 ㄣ负二代 于 2013-7-27 09:06 编辑
if语句是最常用的语句,它根据布尔表达式的值来判断是否执行后面的内嵌语句。
格式:
if(boolean-exprission)embedded-statement
或
if(boolean-expression)embeded-statement
else embeded-statement
当布尔表达式的值为真,则执行if后面的内嵌语句embeded-statement。为假则程序继续执行。如果有else语句,则执行else后面的内嵌语句,否则继续执行下一条语句。
例如下面的例子用来对一个浮点数x进行四舍五入,结果保存到一个整数i中:
if(x-int(x)>0.5)
{
i=int(x)+1;
}
else
{
i=int(x);
}
如果if或else之后的嵌套语句只包含一条执行语句,则嵌套语句的大括号可以省略。如果包含了两条以上的执行语句,对嵌套部分一定要加上大括号。
如果程序的逻辑判断关系比较复杂,通过会采用条件判断嵌套语句。if语句可以嵌套使用,即在判断之中又有判断,具体形式如下:
if(boolean-expression){ if(boolean-expression) {......}; else {......}/ ...... } else { if(boolean-expression) {......}; else {......}; ......}此时应该注意,每一条else与离它最近且没有其它else与之对应的if相搭配。比如有下面一条语句:
if(x)if(y)F();else G();
它实际上应该等价于下面的写法:
if(x){ if(y){ F(); } else{ G(); }}举一个例子,设有一个数学函数的表达式为:
那么使用条件语句编写的代码如下:
if(x>0){ y=1;}else{ if(x==0){ y=0; } esle{ y=-1; }}注意:C#的if语句与C、C++不同,即if后的逻辑表达式必须是布尔类型的。
请看一个判断是否往应用程序传送参数的例子。
程序清单8-1:
using System;class Test{ static void Main(string[] args){ if(args.Length==0) Console.WriteLine("No arguments were provided"); else Console.WriteLine("Arguments were provided"); }}其中,args.Length==0是一个布尔表达式。但是,对于C或C++程序员,他们可能会习惯于编写这样的代码:
if(args.Length)
{......};
这在C#中是不允许的,因为if语句仅允许布尔(bool)数据类型的结果,而字符串的Length属性对象返回一个整型(integer)。编译器将出现报告错误信息。
|
|