设为首页 | 收藏本站
首页>IT学院>软件编程>正文
VC#2005快速入门之使用if语句
WWW.DBIT.CN 2006-9-29 8:26:24 热度:
 

   如果想根据一个布尔表达式的结果选择执行两个不同的代码块,就可以使用if语句。

  理解if语句的语法

  if语句的语法格式如下(if和else是关键字):

if ( booleanExpression )
 statement-1;
else
 statement-2;

  如果booleanExpression求值为true,就运行 statement-1;否则就运行statement-2。else关键字和后续的statement-2是可有可无的。如果没有else子句,那么在booleanExpression为false的前提下,什么都不会发生。

  例如,以下if语句用于递增一个秒表的秒针(暂时忽略分钟)。如果seconds的值是59,就重置为0;否则就使用操作符++来递增:

int seconds;
...
if (seconds == 59)
seconds = 0;
else
seconds++;


  只使用布尔表达式!

  if语句中的表达式必须放在一对圆括号中。除此之外,表达式必须是布尔表达式。在另一些语言中(尤其是C和C++),还可以使用一个整数表达式,编译器能自动将整数值转换成true(非零值)或false(零值)。C#不允许这样做。如果写这样的一个表达式,编译器会报错。

  假如在if语句中不慎写了一个赋值表达式,而不是执行一个相等性测试,C#编译器也能识别你的错误。例如:

int seconds;
...
if (seconds = 59) // 编译时错误
...
if (seconds == 59) // 正确

  不慎而写成赋值表达式,是C和C++程序容易出现bug的另一个原因。在C和C++中,会将所赋的值(59)悄悄地转换成一个布尔值(任何非零的值都会被视为true),造成每次都必定执行if语句之后的代码。

  最后,可以将一个布尔变量作为表达式使用,如下例所示:

bool inWord;
...
if (inWord == true) // 可以,但不常用
...
if (inWord) // 更好

  使用块来分组语句

  有时,需要在一个布尔表达式为true的前提下运行两个或者更多的语句。可以将要运行的语句分组到一个新方法中,然后调用那个方法。但是,一个更简单的做法是将语句分组到一个块(block)中。块是指用一对大括号来封闭的一系列语句。在下例中,两个语句将seconds变量重置为零,并使minutes变量递增。我们用一个块来分组这两个语句。假如seconds的值等于59,就执行该块:

int seconds = 0;
int minutes = 0;
...

if (seconds == 59)
{
seconds = 0;
minutes++;
}
else
seconds++;

  重要提示 假如遗漏大括号,将造成两个严重后果。首先,C#编译器只将第一个语句(seconds=0)与if语句关联起来,下一个语句(minutes++)将不再成为if语句的一部分。其次,当编译器遇到else关键字时,不会将它与前一个if语句关联起来,所以会报告语法错误。

 如果想根据一个布尔表达式的结果选择执行两个不同的代码块,就可以使用if语句。

  理解if语句的语法

  if语句的语法格式如下(if和else是关键字):

if ( booleanExpression )
 statement-1;
else
 statement-2;

  如果booleanExpression求值为true,就运行 statement-1;否则就运行statement-2。else关键字和后续的statement-2是可有可无的。如果没有else子句,那么在booleanExpression为false的前提下,什么都不会发生。

  例如,以下if语句用于递增一个秒表的秒针(暂时忽略分钟)。如果seconds的值是59,就重置为0;否则就使用操作符++来递增:

int seconds;
...
if (seconds == 59)
seconds = 0;
else
seconds++;


  只使用布尔表达式!

  if语句中的表达式必须放在一对圆括号中。除此之外,表达式必须是布尔表达式。在另一些语言中(尤其是C和C++),还可以使用一个整数表达式,编译器能自动将整数值转换成true(非零值)或false(零值)。C#不允许这样做。如果写这样的一个表达式,编译器会报错。

  假如在if语句中不慎写了一个赋值表达式,而不是执行一个相等性测试,C#编译器也能识别你的错误。例如:

int seconds;
...
if (seconds = 59) // 编译时错误
...
if (seconds == 59) // 正确

本新闻共2页,当前在第1页  1  2  

 
上一篇:ASP.NET2.0数据库入门之SQL Server
下一篇:c语言中的指针专题
打印】【关闭
  相关文章:
·VC++ 6.0中实现三叉切分窗口与多视·VC中用简易方法实现淡入淡出的启动
·最常见的20种VC++编译错误信息
☆联姻学院☆

保养电脑的26个窍门
文件夹删除不掉怎么办?
教你如何用手工迅速剿灭QQ广告
“熊猫烧香”病毒的病毒描述和
在Excel中只打印图表以外区域
Excel中只选中包含文本的单元
Windows XP操作系统的几个实用
用XP系统自带网络诊断程序解决
风雨雷电→自然现象动画实战技
Flash遮罩特效之百叶窗效果
十二个Dreamweaver鲜为人知的
如何用 Dreamweaver 批量做we
JavaScript的系统函数学习
Java之父:关于Java我也有遗憾
排除网上邻居使用4大常见麻烦
解除上网限制IP和MAC捆绑的破