资源预览内容
第1页 / 共17页
第2页 / 共17页
第3页 / 共17页
第4页 / 共17页
第5页 / 共17页
第6页 / 共17页
第7页 / 共17页
第8页 / 共17页
第9页 / 共17页
第10页 / 共17页
亲,该文档总共17页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
第4章 用如果造句条件语句如果洪七公赢了,就去加入丐帮,如果黄药师赢了,就去加盟桃花岛。江湖之中绝不自断后路,一种计划不行,就得立即启动各种预案,争取在江湖中的生存与荣耀。如果,就,很熟悉呢,没错,江湖人就得学会分析条件,先用如果大胆预测,再用就来决策可能的行为,相当不错的买卖,保证左右逢源,江湖不险。本章将讲述如何在Java的世界里,处变不惊,熟练而轻松的应对各种复杂多变的条件,主要知识点如下。怎样使用关系条件。逻辑条件是什么。怎样用如果造句。怎样处理如果中的如果怎么。奇妙的开关语句。4.1 如果岔路口是常见的,怎么走正确的方向,就需要好好的来掂量下现有的条件,按条件来选择目前最应该走的路。在进行这种思考的时候,通常会用到如果这个关键字。本节将说明怎么用Java来处理岔路口的问题,以及在Java中怎么来说出如果。4.1.1 关系条件【本小节代码示例参考:源代码C04srcTestRelation.java】在第3章中笔者说过,会有一些运算符要在第4章中进行说明,那这些在第3章里被刻意遗漏的运算符是什么呢。其中之一就是关系条件运算符,留到本章的原因很简单,因为这些运算符就是为了与“如果”配套使用而生的,如图4.1所示。4.1.2 逻辑条件【本小节代码示例参考:源代码C04srcTestLogic.java】有些事情不太可能做到完美,那么一般就会要求得马虎些,这种情况下就是“或”的用武之地。例如,中国男足要出战世界杯,大伙就没啥要求,只要能进三个球或者踢赢一场就算胜利。两个条件一起进行考虑,但只要任何一个符合就算达标的,这种就是或的算法。然而人家巴西肯定不是这样,人家要的是进10个球以上,外加赢5场以上,两个目标一个不达标都不算胜利。像这种两个条件同时起作用,都必须达标才算合格的,就是与的算法。与和或在Java中是怎样表达的呢,且看:& 将两个boolean型的结果进行与运算。| 将两个boolean型的结果进行或运算。4.1.3 用问号写最简洁的如果句子【本小节代码示例参考:源代码C04srcTestLogic.java】有没有一种格式的if语句可以更简洁些?强大的Java当然会有完美的答案,这个答案就是使用“?:”运算符。情景:某人去银行取钱,他先查了一下余额,因为他有一个小小的决定,那就是当余额多于10000万元就取5000元去买台电脑,但是如果没那么多钱的话,就只取500块钱零花。显然,这是一个如果的问题,用if是这么做的:4.2 否则【本节代码示例参考:源代码C04srcTestAdvancedIf.java】如果的句式还会有些比较复杂的用法,毕竟很多时候,会就非常多的条件进行选择,而不是简单的二元选择。本节就对此作些补充的讲解,较难的知识点是:多重如果嵌套的应用。4.2.1 如果与否则 ifelse很多时候的判断是非此即彼,用中文造句的说法是:如果就,否则。仍然用取钱的例子。改成加上了否则来造句:如果银行卡上的余额大于或等于10000元就取5000元去买电脑,否则只取500块零花。对比一下,在4.1.3节中,用了两个如果造的句子,在这里,加了否则就变得简洁了很多。用文字造句有这样的效果,那Java呢?请看:int remain = 9000; /*声明余额为 9000*/int withdraw = 0; /* 待取的钱不确定,先声明为零。*/* 如果钱多于10000取5000,否则只取500*/if (remain = 10000) withdraw = 5000; /* 确定可以取5000*/elsewithdraw = 500;System.out.println(余额是: + remain + ;决定取: + withdraw);4.2.2 如果里的如果if 嵌套前面的条件判断都还是比较复杂的,有时候并不总是这么简单。条件需要细分,层层相套也就成了必然。情景:某人还是去取钱,这回他的想法有了些变化,他的决定如下:(1)如果余额多于1万块,但是少于2万块,就取7000块买台较好的台式机。(2)如果余额大于2万块,就取15000块买台thinkpad。(3)如果余额小于1万块,且多于5000块,就取3000块买部智能手机。(4)如果余额小于5000块,太穷了,就取600块买个山寨机。好多的如果,会不会有些眼晕,这只是开始,笔者演示了3种if的组合方式来实现这段代码:第一种:纯粹地用if来实现。第二种:用ifelse if来实现。第三种:用嵌套的if来实现。4.3 开关 switch用过电视遥控器吧,按一个按钮,就能换一个频道,相当的方便与快捷。不需要太多的判断,仅仅只是进行简单的比对,1对应1频道,2对应2频道。在Java中要怎样做才能实现这种功能呢?本节就来说说这个问题。4.3.1 switch怎么用switch是Java中的开关语句,与电视遥控器的功能类似,能够接受相关的指令来执行一些特定的具体操作。本节将从switch本身的用法及与if的两方面对比进行讲解。switch只能接受特定的数据类型作为指令,这些类型包括:byte、char、short、int、Character(Java5及以上支持)、Byte(Java5及以上支持)、Short(Java5及以上支持)、Integer(Java5及以上支持)。注意:上面的类型其实有一个共同的特点,请回忆一下基本类型章节的内容,然后融会贯通一下。4.3.2 switch与if的比较聪明的读者肯定发现了,switch的功能用if语句也能达到相同的效果,以日期转换的代码为例,用if的实现如下:01/*-用if 实现的示例-*/02if (day = 1) /判断是否传入日期为103System.out.println(Monday);04else if (day = 2) /判断是否传入日期为205System.out.println(Tuesday);06else if (day = 3) /判断是否传入日期为307System.out.println(Wednesday);08else if (day = 4) /判断是否传入日期为409System.out.println(Thursday);10else if (day = 5) /判断是否传入日期为511System.out.println(Friday);12else if (day = 6) /判断是否传入日期为613System.out.println(Saturday);14else if (day = 7) /判断是否传入日期为715System.out.println(Sunday);16else/如果都不是则System.out.println(一周没有这一天哦.);4.3.3 用switch写个红绿灯开关通过4.3.1节的学习,应该完全熟悉了switch的使用,笔者想多来一个示例,加深读者对switch开关特性的理解。毕竟开关特性才是switch的专长,也是switch区分于if的地方。最好的示例是什么呢,来看情景:在十字路口,交通太繁忙了,为了更好的交通环境,决定装一个红绿灯。现在这个红绿灯的开关设计安排了用Java来实现。红绿灯,需要按三种不同的信号来开不同的灯,假设这三种信号为:(1)1代表开红灯的信号。(2)2代表开绿灯的信号。(3)3代表开黄灯的信号。4.4 小结向左走,向右走,这是每天都要碰到的问题。本章主要就是讲述了碰到这种头痛的分支时,怎么用Java来进行理性而优雅的处理。在本章,主要的学习内容有:条件运算怎么做。逻辑运算的处理。用if进行分支处理。if的各种实现形式。switch控制开关式分支。在接下来的第5章里,将讲述如何高效地处理重复、重复又重复的问题,拭目以待吧!4.4 习题【本章习题答案在光盘中 习题.doc】通过下面的习题来检验本章的学习,习题答案参考光盘。1用来判断如果条件的关键字是_。2withdraw=remain=10000?5000:500,在这段代码中,如果remain为1100,那么withdraw会是多少?3switch语句可用哪些数据类型做参数?4以下代码的执行结果会是什么,为什么?int signal = 1;switch (signal) case 1:System.out.println(红灯);case 2:System.out.println(绿灯);case 3:System.out.println(黄灯);break;default:System.out.println(默认开绿灯);break;
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号