这篇文章将为大家详细讲解有关Java中选择结构的用法示例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
文本关键字:基本结构、选择结构、if、else、switch、case
使用if-else选择结构时,一个最基本的原则就是一定会有一个判断条件,并且如果出现else一定会有一个与之对应的if。
代码格式:if(判断条件){}else{}
判断条件部分可以直接使用布尔值:true/false
如果使用表达式作为判断条件则必须要保证最终的计算结果为布尔类型
对于switch-case结构,整体的结构与if-else不同,虽然也是进行判断,但是switch-case是指定一个变量或表达式作为需要比对的值,通过case来罗列与之匹配的值,并写出该情况下需要执行的代码。
代码格式:switch(变量或表达式){case 匹配值:代码片段;default:代码片段;}
变量或表达式结果的类型只能为:整数类型(byte、short、int),字符串String,字符char,枚举enum
case本身具有穿透的特点,会从一个匹配的case进入执行,直到遇到break;为止
default关键字可以不出现,如果出现只能出现在最后的位置,在所有case都没有匹配时执行(如果离default最近的一个case没有使用break,则也可能会被执行)
单if结构是最简单的选择结构,表达的含义是:符合条件时,执行部分代码,不符合条件时,什么都不做,继续执行选择结构之后的代码。需要注意的是,if用小括号装一个条件,默认只能控制一条语句,如果需要控制多条语句需要使用大括号。
public static void main(Stirng[] args){ // 假如有如下场景:你每天回家都要汇报你的考试成绩和完成家庭作业 // 如果你考的不错(90分以上),那么就会得到一次夸奖 // 如果考的不怎么样,就什么都不会发生 // 而且,不管考的怎么样,作业都是要完成的,就是如此的悲催 int score = 92; if(score >= 90){ // 为了避免不必要的麻烦,即使是一行代码我们也加上大括号,这招挺管用的! System.out.println("考的不错!"); } System.out.println("开始写作业"); }
if-else结构是最基本的选择结构,明确一个判断条件后,指定条件成立时做什么,条件不成立时做什么。
public static void main(Stirng[] args){ // 假如有如下场景:根据不同的年级进入不同的活动教室 // 3年级及以下的学生进入活动室一 // 其他年级学生进入活动教室二 int grade = 2; if(grade <= 3){ // 为了避免不必要的麻烦,即使是一行代码我们也加上大括号,这招挺管用的! System.out.println("进入活动教室一"); }else{ System.out.println("进入活动教室二"); } }
如果我们需要具体判断的条件很多,那么我们就需要使用到多个if。需要注意的是,我们可以在一段程序中使用多个并列的if-else结构,但是这和if-eles if-else的结构并不等效,请看流程图。
并列的if-else结构,每个if后面都可以引导判断条件,但是相互之间相对独立,无关联。
// 伪代码如下: public static void main(Stirng[] args){ if(条件){ // 程序代码 }else{ // 程序代码 } if(条件){ // 程序代码 }else{ // 程序代码 } }
对于if-else if-else结构,如果一个if中的条件为真,则其他的判断分支将不会执行,即使判断结果为真!
// 伪代码如下: public static void main(Stirng[] args){ if(条件){ // 程序代码 }else if(条件){ // 程序代码 }else{ // 程序代码 } }
掌握了基本条件判断结构后,对于复杂问题可能需要使用到嵌套结构。比如某一个问题需要分两种或多种情况讨论,而这几种情况又需要进一步分多种情况讨论。
// 伪代码如下: public static void main(Stirng[] args){ if(条件){ // 程序代码 if(条件){ // 程序代码 }else{ // 程序代码 } }else{ // 程序代码 } }
switch-case结构也是选择结构的一种,主要使用在选择条件较多,并且主要是等值判断时。如果我们需要使用switch-case结构进行某一个范围的判断,那就需要下一点功夫来进行转换。
在这种情况下会按次序进行判断执行匹配到的case后面的代码,执行完毕后直接结束switch-case结构,当所有的case都没有匹配时,会执行default相关的代码。
public static void main(Stirng[] args){ String sex = "女"; switch(sex){ case "男": System.out.println("男生"); break; case "女": System.out.println("女生"); break; default: System.out.println("怕是变异了?"); } }
当case对应的值被匹配到后,对应的代码会被执行,由于没有break,将会继续执行下一个case对应的代码(包括default),直到整个switch-case都结束或遇到一个break为止。
public static void main(Stirng[] args){ // 有的时候我们刚好可以利用一下穿透的特点,来进行区间的判断 // 下面是一个经典案例:根据分数进行分档 // 90-100:A,80-89:B,70-79:C,60-69:D,0-59:不及格,其他:错误的分数 int score = 75; // switch的括号中可以使用表达式,只要计算结果的类型满足要求即可 // 对分数进行区间的划分,相当于变向的范围判断 switch(score / 10){ case 10: // 此处什么都不填写,匹配到之后自动去执行case9对应的代码 // 但是case10不能省略,否则会丢失100分时的情况 case 9: System.out.println("A"); break; case 8: System.out.println("B"); break; case 7: System.out.println("C"); break; case 6: System.out.println("D"); break; case 5: case 4: case 3: case 2: case 1: case 0: // 继续使用穿透的特点,表示0-59分时的情况 System.out.println("不及格"); break; default: // 当分数为负数或大于100分时执行这部分的代码 System.out.println("成绩录入有误"); } }
关于“Java中选择结构的用法示例”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。