赞
踩
写在前面:博主是一只经过实战开发历练后投身培训事业的“小山猪”,昵称取自动画片《狮子王》中的“彭彭”,总是以乐观、积极的心态对待周边的事物。本人的技术路线从Java全栈工程师一路奔向大数据开发、数据挖掘领域,如今终有小成,愿将昔日所获与大家交流一二,希望对学习路上的你有所助益。同时,博主也想通过此次尝试打造一个完善的技术图书馆,任何与文章技术点有关的异常、错误、注意事项均会在末尾列出,欢迎大家通过各种方式提供素材。
本文关键字:基本结构、选择结构、if、else、switch、case
使用if-else选择结构时,一个最基本的原则就是一定会有一个判断条件,并且如果出现else一定会有一个与之对应的if。
对于switch-case结构,整体的结构与if-else不同,虽然也是进行判断,但是switch-case是指定一个变量或表达式作为需要比对的值,通过case来罗列与之匹配的值,并写出该情况下需要执行的代码。
单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("成绩录入有误");
}
}
扫描下方二维码,加入官方粉丝微信群,可以与我直接交流,还有更多福利哦~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。