文本关键字:基本结构、选择结构、if、else、switch、casejava
使用if-else选择结构时,一个最基本的原则就是必定会有一个判断条件,而且若是出现else必定会有一个与之对应的if。ide
对于switch-case结构,总体的结构与if-else不一样,虽然也是进行判断,可是switch-case是指定一个变量或表达式做为须要比对的值,经过case来罗列与之匹配的值,并写出该状况下须要执行的代码。设计
单if结构是最简单的选择结构,表达的含义是:符合条件时,执行部分代码,不符合条件时,什么都不作,继续执行选择结构以后的代码。须要注意的是,if用小括号装一个条件,默认只能控制一条语句,若是须要控制多条语句须要使用大括号。3d
public static void main(Stirng[] args){ // 假若有以下场景:你天天回家都要汇报你的考试成绩和完成家庭做业 // 若是你考的不错(90分以上),那么就会获得一次夸奖 // 若是考的不怎么样,就什么都不会发生 // 并且,无论考的怎么样,做业都是要完成的,就是如此的悲催 int score = 92; if(score >= 90){ // 为了不没必要要的麻烦,即便是一行代码咱们也加上大括号,这招挺管用的! System.out.println("考的不错!"); } System.out.println("开始写做业"); }
if-else结构是最基本的选择结构,明确一个判断条件后,指定条件成立时作什么,条件不成立时作什么。code
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后面均可以引导判断条件,可是相互之间相对独立,无关联。blog
// 伪代码以下: 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{ // 程序代码 } }
掌握了基本条件判断结构后,对于复杂问题可能须要使用到嵌套结构。好比某一个问题须要分两种或多种状况讨论,而这几种状况又须要进一步分多种状况讨论。it
// 伪代码以下: public static void main(Stirng[] args){ if(条件){ // 程序代码 if(条件){ // 程序代码 }else{ // 程序代码 } }else{ // 程序代码 } }
switch-case结构也是选择结构的一种,主要使用在选择条件较多,而且主要是等值判断时。若是咱们须要使用switch-case结构进行某一个范围的判断,那就须要下一点功夫来进行转换。程序设计
在这种状况下会按次序进行判断执行匹配到的case后面的代码,执行完毕后直接结束switch-case结构,当全部的case都没有匹配时,会执行default相关的代码。class
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("成绩录入有误"); } }