只想知道 发表于 2015-1-16 22:31:11

ASP.NET编程:VC#2005疾速进门之利用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;不然就利用操纵符++来递增:

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

  只利用布尔表达式!

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

  假设在if语句中失慎写了一个赋值表达式,而不是实行一个相称性测试,C#编译器也能辨认你的毛病。比方:

intseconds;
...
if(seconds=59)//编译时毛病
...
if(seconds==59)//准确

  失慎而写成赋值表达式,是C和C++程序简单呈现bug的另外一个缘故原由。在C和C++中,会将所赋的值(59)悄然地转换成一个布尔值(任何非零的值城市被视为true),形成每次都一定实行if语句以后的代码。

  最初,能够将一个布尔变量作为表达式利用,以下例所示:

boolinWord;
...
if(inWord==true)//能够,但不经常使用
...
if(inWord)//更好
  利用块来分组语句

  偶然,必要在一个布尔表达式为true的条件下运转两个大概更多的语句。能够将要运转的语句分组到一个新办法中,然后挪用谁人办法。可是,一个更复杂的做法是将语句分组到一个块(block)中。块是指用一对年夜括号来关闭的一系列语句。鄙人例中,两个语句将seconds变量重置为零,并使minutes变量递增。我们用一个块来分组这两个语句。假设seconds的值即是59,就实行该块:

intseconds=0;
intminutes=0;
...

if(seconds==59)
{
seconds=0;
minutes++;
}
else
seconds++;
  主要提醒假设漏掉年夜括号,将形成两个严峻成果。起首,C#编译器只将第一个语句(seconds=0)与if语句联系关系起来,下一个语句(minutes++)将不再成为if语句的一部分。其次,当编译器碰到else关头字时,不会将它与前一个if语句联系关系起来,以是会呈报语法毛病。
<P>  嵌套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";
elseif(day==1)
dayName="Monday";
elseif(day==2)
dayName="Tuesday";
elseif(day==3)
dayName="Wednesday";
elseif(day==4)
dayName="Thursday";
elseif(day==5)
dayName="Friday";
elseif(day==6)
dayName="Saturday";
else
dayName="unknown";
  鄙人面的实习中,我们将写一个办法,以便利用嵌套的if语句来对照两个日期。

  1、编写if语句

  1.启动MicrosoftVisualStudio2005。

  2.翻开Selection项目,它位于MyDocuments文件夹下的MicrosoftPressVisualCSharpStepbyStepChapter4Selection子文件夹中。

  3.选择“调试”|“入手下手实行(不调试)”。

  VisualStudio2005将天生并运转使用程序。窗体上显现了两个DateTimePicker控件,分离名为first和second(这类控件将显现一个日历,便于用户经由过程单击下拉按钮来选择一个日期)。两个控件以后都设置成明天的日期。

  4.单击Compare按钮。

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

first==second:False
first!=second:True
first<second:False
first<=second:False
first>second:True
first>=second:True
  上述了局分明有成绩!如所示布尔表达式first==second应当为true,由于first和second都被设置成明天的日期。现实上,在上述了局中,仿佛只要操纵符<和操纵符>=的了局才是准确的!


文本框内的内容

  5.单击Quit。

  随后将前往VisualStudio2005编程情况。

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

privateintcompare_Click(objectsender,System.EventArgse)
{
intdiff=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办法,以下所示:

privateintdateCompare(DateTimeleftHandSide,DateTimerightHandSide)
{
 //TODO
 return42;
}
  该办法今朝在挪用后一直前往统一个值,而不是经由过程对照参数值来前往0,-1或+1。这注释了为何使用程序不像我们希冀的那样事情!如今,必要完成这个办法,让它准确地对照两个日期。

  8.从dateCompare办法中移除//TODO正文和return语句。

  9.在dateCompare办法主体中输出以下语句:

intresult;
if(leftHandSide.Year<rightHandSide.Year)
 result=-1;
elseif(leftHandSide.Year>rightHandSide.Year)
 result=+1;
elseif(leftHandSide.Month<rightHandSide.Month)
 result=-1;
elseif(leftHandSide.Month>rightHandSide.Month)
 result=+1;
elseif(leftHandSide.Day<rightHandSide.Day)
 result=-1;
elseif(leftHandSide.Day>rightHandSide.Day)
 result=+1;
else
 result=0;
 returnresult;
  假设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。是不是实质都是API?有的好像不只是API那么简单的,有的也是一种框架就像MFC一样。有的还是一种思想(就是做软件的思想)(好像很深奥,其实我也不懂^_^)

再现理想 发表于 2015-1-19 16:05:12

Servlet却在响应第一个请求的时候被载入,一旦Servlet被载入,便处于已执行状态。对于以后其他用户的请求,它并不打开进程,而是打开一个线程(Thread),将结果发送给客户。由于线程与线程之间可以通过生成自己的父线程(ParentThread)来实现资源共享,这样就减轻了服务器的负担,所以,JavaServlet可以用来做大规模的应用服务。

谁可相欹 发表于 2015-2-2 13:21:28

市场决定一切,我个人从经历上觉得两者至少在很长时间内还是要共存下去,包括C和C++,至少从找工作就看得出来,总不可能大家都像所谓的时尚一样,追捧一门语言并应用它。

柔情似水 发表于 2015-2-7 21:17:11

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

若天明 发表于 2015-2-23 11:09:51

有一丝可惜的是,这个系列太强了,Java阵营的朋友根本就是哑口无言...争论之火瞬间被浇灭,这不是我想这么早就看到的,但是值了。

小魔女 发表于 2015-3-7 08:44:11

现在的ASP.net分为两个版本:1.1和2.0Asp.net1.1用VS2003(visualstudio2003)编程。Asp.net2.0用VS2005(visualstudio2005)编程。现在一般开发用的是VS2003。

小妖女 发表于 2015-3-14 16:24:37

ASP.Net摆脱了以前ASP使用脚本语言来编程的缺点,理论上可以使用任何编程语言包括C++,VB,JS等等,当然,最合适的编程语言还是MS为.NetFrmaework专门推出的C(读csharp)。

第二个灵魂 发表于 2015-3-21 12:45:59

最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。
页: [1]
查看完整版本: ASP.NET编程:VC#2005疾速进门之利用if语句