- 1、本文档共7页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
java if语句与switch语句
Java?支持两种选择语句:if语句和switch语句。这些语句允许你只有在程序运行时才能知道其状态的情况下,控制程序的执行过程。如果你没有C/C++?的编程背景,你将会为这两个语句的强大功能和灵活性而感到吃惊。? 1.1?if语句 if语句是Java?中的条件分支语句。它能将程序的执行路径分为两条。if语句的完整格式 if?(condition)?statement1; else?statement2;? 其中,if和else的对象都是单个语句(statement?),也可以是程序块。条件condition?可以是任何返回布尔值的表达式。else子句是可选的。 if语句的执行过程如下:如果条件为真,就执行if的对象(statement1?);否则,执行else?的对象(statement2?)。任何时候两条语句都不可能同时执行。考虑下面的例子: int?a,b;?//?...if(a??b)?a?=?0;else?b?=?0;? 本例中,如果a小于b,那么a被赋值为0;否则,b被赋值为0。任何情况下都不可能使a?和b都被赋值为0。 通常,用于控制if语句的表达式都包含关系运算符。当然,这在技术上并不是必要的。仅用一个布尔值来控制if语句也是可以的,如下面的程序段: boolean?dataAvailable;? //?... if?(dataAvailable) ProcessData(); else? waitForMoreData();? 记住,直接跟在if?或else语句后的语句只能有一句。如果你想包含更多的语句,你需要建一个程序块,如下面的例子: int?bytesAvailable; //?... if?(bytesAvailable??0)?{ ProcessData();bytesAvailable?-=?n;}?elsewaitForMoreData();? 这里,如果变量bytesAvailable?大于0,则if块内的所有语句都会执行。 一些程序员觉得在使用if语句时在其后跟一个大括号是很方便的,甚至在只有一条语句的时侯也使用大括号。这使得在日后添加别的语句变得容易,并且你也不必担心忘记括号。事实上,当需要定义块时而未对其进行定义是一个导致错误的普遍原因。例如,考虑下面的程序段: int?bytesAvailable; //?... if?(bytesAvailable??0)?{ ProcessData();bytesAvailable?-=?n; }?else waitForMoreData(); bytesAvailable?=?n;? 由于编排的原因,看起来似乎bytesAvailable?=?n?语句应该在else子句中执行。然而,当你调用时,空白对Java?无关紧要,编译器无法知道你的意图。这段程序会通过编译,但运用时会出错。上述例子应修改 int?bytesAvailable; //?... if?(bytesAvailable??0)?{ ProcessData(); bytesAvailable?-=?n; }?else?{ waitForMoreData(); bytesAvailable?=?n;? }? 嵌套if?语句 嵌套(nested)if语句是指该if语句为另一个if或者else?语句的对象。在编程时经常要用到嵌套if语句。当你使用嵌套if语句时,需记住的要点就是:一个else语句总是对应着和它在同一个块中的最近的if语句,而且该if语句没有与其他else语句相关联。下面是一个例子: if(i?==?10)?{if(j??20)?a?=?b;if(k??100)?c?=?d;?//?this?if?iselse?a?=?c;?//?associated?with?this?else? } else?a?=?d;?//?this?else?refers?to?if(i?==?10)? 如注释所示,最后一个else语句没有与if(j?20?)相对应,因为它们不在同一个块(尽管if(j?20?)语句是没有与else配对最近的if语句)。最后一个else语句对应着if(i==10?)。内部的else语句对应着if(k100?),因为它是同一个块中最近的if语句。 if-else-if?阶梯 基于嵌套if语句的通用编程结构被称为?if-else-if?阶梯。它的语法 if(condition)?statement;?else?if(condition)?statement;?else?if(condition)? statement;? .? .? .? else? stateme
文档评论(0)