当前位置: 首页 > 编程语言 > C# > 正文

C#的if语句

时间:2007-09-13 本站

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)。编译器将出现报告错误信息。