条件运算符 嵌套的if语句-Java语言程序设计 计算机二级考试笔记

发布于 2018-02-02 09:45  编辑:盘子
0
计算机等级考试题库 扫码微信刷题

条件运算符 嵌套的if语句


当if表达式为true时,被执行的语句可以还是一条if语句,它也可以作为else子句的一条语句。这就使你可以表达一种错综复杂的逻辑关系,比如"如果我的银行有足够的余额,如果我带着支票本,就买一辆汽车,要不然如果我可以从银行获得贷款,也会买一辆汽车。"一个嵌套在另一条if语句中的if语句又可以包含一个嵌套的if语句。可以像此下去多层嵌套,只要你清楚自己在做什么或对繁琐、混乱情有独钟。

我们可以对前面例子中的if语句进行修改来说明嵌套的if语句,

if (number%2==0) //Test if it is even

(

if (number<50) //Output a message if number is <50

system.out.println(you have got an even number<50,"+number)

)

else

system.out .println (you have got an odd number,"+number);It is odd


这里如果假设number的值小于50,则显示一条有偶数值的信息。

因为有else子句,所以必须用一个大括号将嵌套的if语句括起来。大括号中内嵌I}语句意味着,若该语句拥有else子句,必将出现在包含嵌套if语句的大括号中。如果没有大括号,程序也可以被编译并运行,但逻辑结构却会发生变化。让我们看看是怎么回事。

在嵌套多层if语句后,会产生一个问题,即一个特定的else子句属于哪一个if语句。如果将上面代码中的大括号去掉,我们可以得到

if (number%2==0) //Test if it is even

if (number<50) //Output a message if number is <50

system.out.println(you have got an even number<50,"+number)

else

system.out.println(you have got an odd number +number);//It is odd


这种书写形式与前面的逻辑结构有着本质的区别。这里的else子句属于被嵌套在内的用来测试number值小于50的if语句,所以,第二个prirttln()调用仅在偶数值大于或等于50时才被执行。很显然,与我们所需要的结果有差别,因此本例中的输出结果是错误的,但是它能够说明将else连接到if的规则,即:

else子句永远属于前面的距离它最近的、属同一程序块的、没有匹配else子句的if语句。

你一定要认真仔细,以确保在嵌套if语句时的缩进格式正确。依照标识的缩进格式理解逻辑结构,很容易让你采纳,但它有可能是完全错误的。

让我们在另一个程序中试试if-else的应用,试试看--一种笨拙的译码方式

按如下所示,建立LetterCheck类并编写main()方法的代码:

public class LetterCheck

{

public static voif main(string[] args)

{

char symbol="A"

symbol=(char)(128.0*Math.random()); //Generate random character

if (symnol>=A) //Is it A or greator

if system.out.println(you have the capital letter +symnol);

else //It is not z or less

if (symbol>=a) //so is it a or greater?

if (symbol>=z) //YES so is it z or less?

//Then it is a small letter

system.out.println(you have the small letter symbol

else //it is not less than z

system.out.println(

"the code is less than a and it's not a letter)

else

system.out.println(the code is less than a so it's not a letter)


如何工作

这个程序用来识别存储在变量symbol中的值是大写字母、小写字母还是其他字符。它首先产生一个在0到127之间的随机字符,这个字符与基本的7位ASCII字符集(ISO646)中的字符对应。你可以在附录D中查阅ASCII字符集编码。ASCII字符的编码与Unicvde字符集中对应字符的编码相同。在这个字符集中,字母'A'到'Z'用65到90这组相邻的ASCII编码来表示。小写字母用另一组从97到122·的相邻ASCII编码来表示。所以,你只需将字符编码加上32就可以将任何大写字母转换为小写字母。

该If语句确实有一些复杂,所以让我们来看看下述逻辑图。

这张图一共有4条if语句。第一条if语句测试symbol是否大于等于'A'.如果成立,它可能是一个大写字母、小写字母或其他可能的编码,反之,它肯定不是一个字母。所以,if语句的else子句(直到程序结尾)对这种结果产生一个相应的信息。





考无忧小编推荐:

更多计算机等级考试真题及答案>>>点击查看

想知道更多关于计算机等级报考指南、考试时间和考试信息的最新资讯在这里>>>点击查看


本文网址:http://www.k51.com.cn/info/jsjdjks/1802/0226662.html
选择分享到: