All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
[SQL,Server]2005数据库镜像简介_[SQL,Server教程]
.Net2.0,使用ConfigurationManager读写配置文件_[Asp.Net教程]
读取XML为行记录_[XML教程]
PHP技巧:动态网页技术PHP中关于类的几点使用技巧_[PHP教程]
C#教程:线程的暂停与恢复
MS,SQL,常用函数大全_mssql学习_编程技术
SQL,Server存储图像数据的策略与方法_[SQL,Server教程]
本地检验网页是否符合标准的几种方法_[Html教程]
server2008系统安装Microsoft.NET,Framework3.5_.net资料_编程技术
数据库用SQL语法大全_[SQL Server教程]
Reading number is top 10 pictures
关于海盗的研究2
Small QiShu -- ShuangShuangPan1
Fierce! China's special forces training the devil1
身材野火台灣美女1
八个盛产美女的国家2
可爱的小动物
Azusa Yamamoto2
泳装名模阿尔贝特妮写真
A man's favorite things14
西班牙山村小景1
Download software ranking
Tram sex maniac 2 (H) rar bag17
Tram sex maniac 2 (H) rar bag6
Call Of Duty2
WebService在.NET中的实战应用教学视频 → 第1集
变速齿轮3.26
Tram sex maniac 2 (H) rar bag19
Boxer's Top ten classic battle1
Tram sex maniac 2 (H) rar bag13
Tram sex maniac 2 (H) rar bag5
好色的外科大夫
delv published in(发表于) 2014/1/6 9:07:36 Edit(编辑)
VC#2005快速入门之使用if语句_[Asp.Net教程]

VC#2005快速入门之使用if语句_[Asp.Net教程]

VC#2005快速入门之使用if语句_[Asp.Net教程]

 如果想根据一个布尔表达式的结果选择执行两个不同的代码块,就可以使用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语句。这样一来,就可以将一系列布尔表达式链接起来,它们将依次测试,直到其中一个求值为true。在下例中,假如day值为0,则第一个测试求值为true,值"Sunday"将赋给dayName变量。假如day值不为0,则第一个测试失败,控制将传递给else子句。该子句将运行第二个if语句,将day的值与1进行比较。注意,只有在第一个if测试为false的前提下,才会执行第二个if。类似地,只有在第一个和第二个if测试为false的前提下,才会执行第三个if。


if (day == 0)
dayName = "Sunday";
else if (day == 1)
dayName = "Monday";
else if (day == 2)
dayName = "Tuesday";
else if (day == 3)
dayName = "Wednesday";
else if (day == 4)
dayName = "Thursday";
else if (day == 5)
dayName = "Friday";
else if (day == 6)
dayName = "Saturday";
else
dayName = "unknown";

  在下面的练习中,我们将写一个方法,以便使用嵌套的if语句来比较两个日期。

  一、编写if语句

  1. 启动Microsoft Visual Studio 2005。

  2. 打开Selection项目,它位于My Documents文件夹下的\Microsoft Press\Visual CSharp Step by Step\Chapter 4\Selection子文件夹中。

  3. 选择“调试”|“开始执行(不调试)”。

  Visual Studio 2005将生成并运行应用程序。窗体上显示了两个DateTimePicker控件,分别名为first和second(这种控件将显示一个日历,便于用户通过单击下拉按钮来选择一个日期)。两个控件当前都设置成今天的日期。

  4. 单击Compare按钮。

  文本框中会显示以下内容:


first == second : False
first != second : True
first < second : False
first <= second : False
first > second : True
first >= second : True

  上述结果明显有问题!如图1所示布尔表达式first == second应该为true,因为first和second都被设置成今天的日期。事实上,在上述结果中,似乎只有操作符<和操作符>=的结果才是正确的!


图1 文本框内的内容

  5. 单击Quit。

  随后将返回Visual Studio 2005编程环境。

  6. 在“代码和文本编辑器”窗口中显示Form1.cs的代码,找到compare_Click方法,如下所示:


private int compare_Click(object sender, System.EventArgs e)
{
int diff = dateCompare(first.Value, second.Value);
info.Text = "";
show("first == second", diff == 0);
show("first != second", diff != 0);
show("first < second", diff < 0);
show("first <= second", diff <= 0);
show("first > second", diff > 0);
show("first >= second", diff >= 0);
}

  单击窗体上的Compare按钮,就会执行这个方法。该方法获取窗体上的first和second这两个DateTimePicker控件中显示的日期值,并调用另一个名为dateCompare的方法来比较它们。我们将在下一个步骤中具体讨论dateCompare方法,这里只是简单地说一下。该方法的作用是比较它的两个参数值,并根据比较结果来返回一个整数值。如果两个值相同,就返回零;如果first的值小于second的值,就返回-1;如果first的值大于second的值,就返回+1(假如一个日期在日历上排在另一个日期的后面,就说前者大于后者)。

  show方法用于在窗体上的info文本框控件中显示比较结果。

  7. 找到dateCompare方法,如下所示:


private int dateCompare(DateTime leftHandSide, DateTime rightHandSide)
{
 // TO DO
 return 42;
}

  该方法目前在调用后始终返回同一个值,而不是通过比较参数值来返回0,-1或+1。这解释了为什么应用程序不像我们期望的那样工作!现在,需要实现这个方法,让它正确地比较两个日期。

  8. 从dateCompare方法中移除// TO DO注释和return语句。

  9. 在dateCompare方法主体中输入以下语句:


int result;
if (leftHandSide.Year < rightHandSide.Year)
 result = -1;
else if (leftHandSide.Year > rightHandSide.Year)
 result = +1;
else if (leftHandSide.Month < rightHandSide.Month)
 result = -1;
else if (leftHandSide.Month > rightHandSide.Month)
 result = +1;
else if (leftHandSide.Day < rightHandSide.Day)
 result = -1;
else if (leftHandSide.Day > rightHandSide.Day)
 result = +1;
else
 result = 0;
 return result;

  假如leftHandSide.Year < rightHandSide.Year和leftHandSide.Year > rightHandSide.Year为false,那么leftHandSide.Year == rightHandSide.Year肯定为true,程序流程将正确转移,开始比较lhs和rhs的Month属性。类似地,假如leftHandSide.Month < rightHandSide.Month和leftHandSide.Month > rightHandSide.Month为false,那么leftHandSide.Month == rightHandSide.Month肯定为true,程序将开始比较lhs和rhs的Day属性。最后,假如leftHandSide.Day < rightHandSide.Day和leftHandSide.Day > rightHandSide.Day为false,那么leftHandSide.Day == rightHandSide.Day肯定为true;另外,由于在这时候,Month和Year属性也肯定为true,所以两个日期肯定是相同的。

  10. 选择“调试”|“开始执行(不调试)”。

  应用程序将重新生成并重新启动。同样地,两个DateTimePicker控件(first和second)将设置成今天的日期。

  11. 单击Compare按钮。

  文本框中会显示以下内容:


first == second : True
first != second : False
first < second : False
first <= second : True
first > second : False
first >= second : True

  这个结果才是正确的。

  12. 将second这个DateTimePicker控件的日期调到明天。

  13. 再次单击Compare按钮。

  文本框中会显示以下内容:


first == second : False
first != second : True
first < second : True
first <= second : True
first > second : False
first >= second : False


  同样地,这些结果是正确的。

  14. 单击Quit。


来源:网络







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.