教女生学Java:12张图带你吃透流控语句的仓促)。又是《教妹学 Java》的时候了,很开心,很期待,也很舒服。这是《教妹学 Java》专栏的第13篇,我们讲的是“Java中的控制流语句”。在此强调,《教妹学 Java》是针对零基础的Java爱好者。希望能帮助同学们轻松进入编程世界,为后续的深入学习打下坚实的基础。“二哥,流控语句是什么?”三姐脸上带着甜甜的笑容,开始期待接下来要学什么,这也是让我感到欣慰的地方。》比如if-else、switch、for、while、do-while、return、break、continue等,接下来我们一一了解。》01、if-else相关1)if语句if语句的格式如下:if(布尔表达式){//如果条件为真,则执行这段代码}画一个流程图展示一下:写个例子吧:publicclassIfExample{publicstaticvoidmain(String[]args){intage=20;if(age<30){System.out.println("青春时光");}}}output:青春时光2)if-else语句if-else语句格式如下:if(布尔表达式){//条件为真时执行的代码块}else{//条件为假时执行的代码块}画流程图表示:写个例子吧:publicclassIfElseExample{publicstaticvoidmain(String[]args){intage=31;if(age<30){System.out.println("青春岁月");}else{System.out.println("第三Years");}}}输出:立志年除了这个例子,还有一个判断闰年的例子(能被4整除但不能被100或400整除):publicclassLeapYear{publicstaticvoidmain(String[]args){intyear=2020;如果(((年%4==0)&&(year%100!=0))||(year%400==0)){System.out.println("闰年");}else{System.out.println("通用年");}}}输出:闰年如果执行语句比较简单,可以用三元运算符代替if-else语句,如果条件为真,返回?After:之前的值;如果条件为假,则返回:以下值。publicclassIfElseTernaryExample{publicstaticvoidmain(String[]args){intnum=13;Stringresult=(num%2==0)?"evennumber":"oddnumber";System.out.println(result);}}output:oddnumber3)if-else-if语句if-else-if语句的格式如下:if(条件1){//条件1为真时执行的代码}elseif(条件2){//条件2为真时执行的代码}elseif(条件3){//条件3为真时执行的代码}...else{//以上条件为假时执行的代码}画个流程图来说明:下面写个例子:publicclassIfElseIfExample{publicstaticvoidmain(String[]args){intage=31;if(age<30){System.out.println("青春岁月");}elseif(age>=30&&age<40){System.out.println("三十岁");}elseif(age>=40&&age<50){System.out.println("没有的那一年迷惑");}else{System.out.println("知天命");}}}输出:立之年4)if嵌套语句if嵌套语句格式如下:if(外条件){//当外部条件为真时执行的代码if(innercondition){//当内部条件为真时执行的代码}}Drawaflow让我们看图:让我们写一个例子:publicclassNestedIfExample{publicstaticvoidmain(String[]args){intage=20;booleanisGirl=true;if(age>=20){if(isGirl){System.out.println("GirlsarelegalmarriedAge");}}}}Output:girllegalmarriageageforgirl02,switch语句switch语句用于判断一个变量和多个值是否相等。变量可以是byte、short、int、long类型或相应的包装类型Byte、Short、Integer、Long,以及字符串和枚举。我们看一下switch语句的格式:switch(variable){caseoptionalvalue1://optionalvalue1匹配后执行的代码;break;//这个关键字是可选的caseoptionalvalue2://optional选中的值2匹配后执行的代码;break;//这个关键字是可选的......default://这个关键字是可选的//所有可选值不匹配后执行的代码}变量可以有1个或N个值。值类型必须和变量类型一致,值是确定性的。值必须唯一,不能重复,否则会出现编译错误。break关键字是可选的,如果没有则执行下一个case,如果有则跳出switch语句。default关键字也是可选的。画个流程图:下面是一个例子:publicclassSwitch1{publicstaticvoidmain(String[]args){intage=20;switch(age){case20:System.out.println("Gotoschool");break;case24:System.out.println("苏州工作");break;case30:System.out.println("洛阳工作");break;default:System.out.println("未知");break;//可省略}}}输出:去学校当两个值要执行的代码相同时,可以把要执行的代码写在下一个case语句中,而上一个case语句中什么也没有。让我们看一下示例:publicclassSwitch2{publicstaticvoidmain(String[]args){Stringname="SilenceKingII";switch(name){case"James":System.out.println("篮球运动员");break;case"Mourinho":System.out.println("FootballCoach");break;case"沉默之王2":case"SilenceKing3":System.out.println("Ping-ponglovers");break;default:thrownewIllegalArgumentException("Namedoesnotmatch");}}}output:乒乓球爱好者也很常见将变量枚举为switch语句。让我们看一个例子:cStringcreatePlayer(PlayerTypesplayerType){switch(playerType){caseTENNIS:return"网球运动员费德勒";caseFOOTBALL:return"足球运动员罗纳尔多";caseBASKETBALL:return"篮球运动员詹姆斯";caseUNKNOWN:thrownewIllegalArgumentException("Unknown");default:thrownewIllegalArgumentException("PlayerType:"+playerType);}}}Output:basketballplayerJames03,forloop1)普通for循环普通for循环可分为4部分:1)初始变量:循环开始执行时的初始条件2)Condition:每次循环执行时要判断的条件。如果为真,则执行循环体;如果为假,则跳出循环。当然条件是可选的,如果没有条件就一直循环下去。3)循环体:循环每次要执行的代码块,直到条件变为假。4)自增/自减:熟悉变量变化的方式。我们来看一个普通的for循环的格式:for(first-knowvariable;condition;self-increment/decrement){//cyclebody}画个流程图:举个例子:publicclassForExample{publicstaticvoidmain(String[]args){for(inti=0;i<5;i++){System.out.println("沉默的王三真美");}}}输出:沉默的王三真美!沉默的王三太美了!沉默的王三太美了!啊,沉默王三真是太美了,“哎呀,二哥,你真是另类夸我啊。”“不会吧,三姐,你看不出我其实是在夸自己吗?循环语句也可以嵌入一套怎么样,让你打印出更多有趣的,要不要看看?”“好吧好吧!”“看它。“publicclassPyramidForExample{publicstaticvoidmain(String[]args){for(inti=0;i<5;i++){for(intj=0;j<=i;j++){System.out.print("?");}System.out.println();}}}它打印出了什么?????????????????“哇,太不可思议了,兄弟。”“嘿嘿。”2)for-eachfor-each循环通常用于遍历数组和集合。它的使用规则比普通的for循环更简单。它不需要初始变量、条件和下标自增或自减。看一下语法:for(elementtypeelement:arrayorcollection){//要执行的代码}我们看例子:publicclassForEachExample{publicstaticvoidmain(String[]args){String[]strs={"沉默王二》,"一个有趣的程序员"};for(Stringstr:strs){System.out.println(str);}}}输出:沉默王二一个有趣的程序员"啊二哥你开始卖王哥了瓜瓜。“喂,三姐,你这么说哥会脸红的。”??“3)无限for循环”三妹,要不要体验一下无限for循环的威力,也就是无限循环。会有什么后果吗?”“来吧,看看吧。”“publicclassInfinitiveForExample{publicstaticvoidmain(String[]args){for(;;){System.out.println("Can'tstop...");}}}输出:停不下来……停不下来。...undefined”沉默王三沉默王三沉默王三沉默王三沉默王三“姐,要不要体验一下无限do-while循环的威力……”“二哥,再来一次,我玩腻了.”“来吧,例行公事,就假装看到了。}}输出:Can'tstop...Can'tstop...can'tstop...can'tstop...如果do-while条件设置为true,并且没有break关键字循环体,程序一旦开始运行,就根本停不下来。除非被迫停止。06.breakbreak关键字通常用于中断循环或switch语句,在指定条件下打断程序当前流程。如果是内循环,则只中断内循环。break关键字可用于所有类型的循环语句,例如for循环、while循环和do-while循环。下面画个流程图感受一下:for循环中使用的一个例子:for(inti=1;i<=10;i++){if(i==5){break;}System.out.println(i);}嵌套for循环中使用的示例:for(inti=1;i<=3;i++){for(intj=1;j<=3;j++){if(i==2&&j==2){break;}System.out.println(i+""+j);}}while循环中使用的例子:inti=1;while(i<=10){if(i==5){i++;break;}System.out.println(i);i++;}do-while循环中使用的示例:intj=1;do{if(j==5){j++;break;}System.out.println(j);j++;}while(j<=10);switch语句使用示例:switch(age){case20:System.out.println("gotoschool");break;case24:System.out.println("苏州工作");break;case30:System.out.println("洛阳工作");break;default:System.out.println("unknown");break;//可省略}07、需要infor时继续在循环或(do)while循环中立即跳转到下一个循环时,可以使用continue关键字,通常用于在指定条件下跳过循环体。如果循环是嵌套的,则只跳过当前循环。下面是一个例子:publicclassContinueDemo{publicstaticvoidmain(String[]args){for(inti=1;i<=10;i++){if(i==5){//使用continue关键字continue;//5将被跳过}System.out.println(i);}}}Output:1234678910"二哥,5真的跳过了。"“它必须被丢弃。否则它就是一个错误。"循环嵌套的另一个例子。publicclassContinueInnerDemo{publicstaticvoidmain(String[]args){for(inti=1;i<=3;i++){for(intj=1;j<=3;j++){if(i==2&&j==2){//Skipcontinuewheni=2,j=2;}System.out.println(i+""+j);}}}}打印出来的是什么?1112132123313233"22"没有输出并被跳过。我们来看一下while循环中continue的例子:publicclassContinueWhileDemo{publicstaticvoidmain(String[]args){inti=1;while(i<=10){if(i==5){i++;continue;}System.out.println(i);i++;}}}输出:1234678910注意:如果省略if条件中的“i++”,程序将进入死循环并继续。最后,我们看一下do-while循环中continue的例子:publicclassContinueDoWhileDemo{publicstaticvoidmain(String[]args){inti=1;do{if(i==5){i++;continue;}System.out.println(i);i++;}while(i<=10);}}输出:1234678910注意:同理,如果省略if条件中的“i++”,程序会进入死循环,继续执行。”好吧,三妹,Java中的流控语句就到此为止了,我转过僵硬的脖子,对三姐说。“二哥,你辛苦了,让我消化一下吧。””本文转载自微信公众号《沉默之王二》,可以通过以下二维码关注。转载本文请联系沉默王二公众号。
