【蓝桥杯Java_C组·从零开始卷】第二节、ifswitch(超级详细,适合入门强化学习,理论与实战双保险(2021年12月30日上午9点直播·视频发布B站)
目錄
if語句的三種格式
單分支
簡寫語法
可能出現(xiàn)的異常
雙分支
else if 是多分支件判斷·與純if兩者區(qū)別
案例一、判斷一個正整數(shù)的奇偶性
案例二、考試獎勵
switch語句三種用法
switch 標(biāo)準(zhǔn)方式
標(biāo)準(zhǔn)demo·數(shù)字判斷
String類型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚舉/hashCode
枚舉判斷
使用【hashCode】
巧用break
default作用
以下為JAVA_14的語法
switch - > 用法:
switch yield 用法:
石頭剪刀布 測試代碼:
if語句的三種格式
1. if語句 格式:if(判斷語句){執(zhí)行的程序 }2.if...else語句 格式:if(判斷語句){執(zhí)行的程序1 } else{執(zhí)行程序2 }3.if...elseif...elseif.....語句 格式:if(判斷語句1){ 執(zhí)行語句1 }else if(判斷語句2){ 執(zhí)行語句2 }else if(判斷語句3){ 執(zhí)行語句3 }.............單分支
public class HelloWorld {public static void main(String[] args) {boolean b = true;//如果成立就打印yesif(b){System.out.println("yes");}} }簡寫語法
public class HelloWorld {public static void main(String[] args) {boolean b = false;//如果有多個表達(dá)式,必須用大括弧包括起來if(b){System.out.println("yes1");System.out.println("yes2");System.out.println("yes3");}//否則表達(dá)式2 3 無論b是否為true都會執(zhí)行if(b)System.out.println("yes1");System.out.println("yes2");System.out.println("yes3");//如果只有一個表達(dá)式可以不用寫括弧,看上去會簡約一些if(b){System.out.println("yes1");}if(b)System.out.println("yes1");} }可能出現(xiàn)的異常
在第6行,if后面有一個分號; 而分號也是一個完整的表達(dá)式
如果b為true,會執(zhí)行這個分號,然后打印yes
如果b為false,不會執(zhí)行這個分號,然后打印yes
這樣,看上去無論如何都會打印yes
雙分支
public class HelloWorld {public static void main(String[] args) {boolean b = false;if (b)System.out.println("yes");elseSystem.out.println("no");} }else if 是多分支件判斷·與純if兩者區(qū)別
public class HelloWorld {public static void main(String[] args) {//如果只使用 if,會執(zhí)行4次判斷int i = 2;if (i==1)System.out.println(1);if (i==2)System.out.println(2);if (i==3)System.out.println(3);if (i==4)System.out.println(4);//如果使用else if, 一旦在18行,判斷成立, 20行和22行的判斷就不會執(zhí)行了,節(jié)約了運(yùn)算資源if (i==1)System.out.println(1);else if (i==2)System.out.println(2);else if (i==3)System.out.println(3);else if (i==4)System.out.println(4); } }案例一、判斷一個正整數(shù)的奇偶性
這里面我加入了一個輸入語句:
學(xué)過的就當(dāng)我打的都是廢話,要是剛接觸java的學(xué)生不懂話,你就理解成,如果你要是想在CMD中輸入整型變量就把這三行打上就行了。
注意包名:
編碼:?
import java.util.Scanner; public class HelloWorld {public static void main (String[] args){System.out.println("輸入一個正整數(shù):");Scanner sc = new Scanner(System.in);int number = sc.nextInt();if(number % 2 == 0){System.out.println(number+"是整數(shù)");}else {System.out.println(number+"是奇數(shù)");}} }案例二、考試獎勵
小明期末考試,爸爸承諾如果小明考了:
1、100 - 95分獎勵小明山地自行車一輛;
2、94 - 90分獎勵小明到游樂園玩一天;
3、89 - 80分獎勵變形金剛一個;
4、80分一下小明被胖揍一頓;
嵌套if編碼:
package Action;import java.util.Scanner;public class HelloWorld {public static void main(String[] args) {System.out.println("輸入小明的成績:");@SuppressWarnings("resource")Scanner sc = new Scanner(System.in);int number = sc.nextInt();if (number > 0 && number <= 100) {if (number >= 95 && number <= 100) {System.out.println("小明獲得山地自行車一輛");} else if (number >= 90 && number <= 94) {System.out.println("小明可以到游樂場去玩一次");} else if (number >= 80 && number <= 89) {System.out.println("小明獲得變形金剛一個");} else {System.out.println("胖揍小明一頓");}} else {System.out.println("輸入的成績是錯誤的;");}} }switch語句三種用法
使用switch這個關(guān)鍵詞, 我們可以很好的解決if…else 中多重選擇的尷尬場面!
switch 標(biāo)準(zhǔn)方式
flag(標(biāo)示)表示計(jì)算結(jié)果, 必須是整性, 字符串類型, 或者枚舉類型。
switch (flag){undefined? case 0 : 語句一; break;? case 1: 語句二; break;? default: 語句n; break;}標(biāo)準(zhǔn)demo·數(shù)字判斷
int flag = 3; switch (flag){case 0: System.out.println("The number is 0" ); break;case 1: System.out.println("The number is 1" ); break;case 2: System.out.println("The number is 2" ); break;default: System.out.println("no have choose" ); break; }這是一個很標(biāo)準(zhǔn)的 switch 的用法, 有break, 還有 default ,在什么情況下跳出, 在什么情況下結(jié)束運(yùn)行, 都很清楚的說明了, 但是朋友們在寫這個代碼的時候, 有可能會忘記加入break 或者 忘記 加入 default 這樣的問題吧。
String類型switch示例·jdk1.7以上才支持·jdk1.7以下需要使用枚舉/hashCode
package Action;public class HelloWorld {public static void main(String args[]) {String str = "C" ;switch (str) {case "A" :System.out.println( "A" );break ;case "B" :System.out.println( "B" );break ;case "C" :System.out.println( "C" );break ;default :System.out.println( 0 );}} }枚舉判斷
package Action;public class HelloWorld {static enum E {A, B, C, D}public static void main(String args[]) {E e = E.B;switch (e) {case A:System.out.println( "A" );break ;case B:System.out.println( "B" );break ;case C:System.out.println( "C" );break ;case D:System.out.println( "D" );break ;default :System.out.println( 0 );}} }使用【hashCode】
可以看到hashCode與char是相同的,那么進(jìn)行數(shù)字判斷或者其它字符串判斷都是一樣的,支持硬件更換。
package Action;public class HelloWorld {public static void main(String args[]) {String x = "2";System.out.println("hashCode:"+x.hashCode());System.out.println("char:"+(int) '2');int x_int = x.hashCode();switch (x_int) {case 50:System.out.println(2);break;case 51:System.out.println(3);break;default:System.out.println("default");break;}} }巧用break
輸出2022年指定月份的最大天數(shù)·這里可以替換年份
package Action;public class HelloWorld {public static void main(String args[]) {int year = 2022 ;int month = 2 ;int day = 0 ;switch (month) {case 1 :case 3 :case 5 :case 7 :case 8 :case 10 :case 12 :day = 31 ;break ;case 2 :boolean b=(year%4==0&&year%100!=0)||year%400==0; day = b?29:28 ;break ;case 4 :case 6 :case 9 :case 11 :day = 30 ;break ;}System.out.println(day);} }default作用
default在當(dāng)前switch找不到匹配的case時執(zhí)行。default并不是必須的。
package Action;public class HelloWorld {public static void main(String args[]) {int x = 0 ;switch (x) {case 1 :System.out.println( 1 );case 2 :System.out.println( 2 );default :System.out.println( "default" );}} }以下為JAVA_14的語法
switch - > 用法:
使用 - > 方法更加簡單, 就不用使用 break 命令, 保證只有一種路徑會被執(zhí)行!
用法如下:
int flag = 3; switch (flag){case 0 -> System.out.println("The number is 0" ); case 1 -> System.out.println("The number is 1" ); case 2 -> System.out.println("The number is 2" ); default -> System.out.println("no have choose" ); }去掉了 break 和 冒號 取代的使用 箭頭 ->
switch yield 用法:
看到 yield 的時候, 我就在想, 這一定要傳值回來的函數(shù)。 用法 也很簡單,
但是需要注意一點(diǎn), 傳值回去, 外部一定要定義個參數(shù) 用來接受這個值。
int flag = 2; String ss; ss = switch (flag){case 0 -> "The number is 0" ;case 1 -> "The number is 1" ;case 2 -> {String c = "The number is 2";yield c;}default -> "no have choose";}; System.out.println(ss);這里來說, switch 作為了 一條語句, 所以末尾要加冒號, 其他用法相同, 下次如果條件很多的話, 就不用使用 if else ,可以考慮使用 switch 中的yield 返回參數(shù)方式了!
石頭剪刀布 測試代碼:
學(xué)了switch的這些用法, 我想應(yīng)該寫個程序來試試吧, 所以就寫了個石頭剪刀布的小游戲?
package Action; import java.util.Scanner;public class HelloWorld {public static void main(String[] args) { ;int inp=0; //定義輸入的數(shù)值String sRnd=""; //隨機(jī)數(shù)表示出拳int numWin=0; //勝場int numLost=0; //負(fù)場while (true) {boolean flag=true; //立個flag備用int rnd = (int) (1 + Math.random() * 3);System.out.print("請輸入【剪刀】、【石頭】或【布】,輸入【退出】結(jié)束游戲:");@SuppressWarnings("resource")Scanner sc = new Scanner(System.in);String sInp = sc.next();switch (sInp) {//輸入文字轉(zhuǎn)數(shù)字case "剪刀":inp = 1;break;case "石頭":inp = 2;break;case "布":inp = 3;break;case "退出":System.out.println("您已退出!\n ");return;default:System.out.println("輸入有誤! \n");//輸入錯誤時flag為假flag=false;break;}switch (rnd) {//隨機(jī)數(shù)轉(zhuǎn)換成出拳case 1:sRnd = "剪刀";break;case 2:sRnd = "石頭";break;case 3:sRnd = "布";break;default:break;}if (flag==false){//前面立的flag為假了,跳過這次循環(huán)continue;} else if (inp == rnd) {System.out.println("平局! 電腦也是"+sRnd+" 勝"+numWin+"負(fù)"+numLost+"\n");} else if (inp == 1 && rnd == 3 || inp == 2 && rnd == 1 || inp == 3 && rnd == 2) { //列出所有勝局情況System.out.println("你贏了!電腦是"+sRnd+" 勝"+ ++numWin+"負(fù)"+numLost+"\n");} else {System.out.println("電腦勝!電腦是 "+sRnd+" 勝"+numWin+"負(fù)"+ ++numLost+"\n"); //其他都是負(fù)局情況}} }}希望能對大家有所幫助,歡迎一鍵三連。?
總結(jié)
以上是生活随笔為你收集整理的【蓝桥杯Java_C组·从零开始卷】第二节、ifswitch(超级详细,适合入门强化学习,理论与实战双保险(2021年12月30日上午9点直播·视频发布B站)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql索引_效率测试(包含测试sql
- 下一篇: 【蓝桥杯Java_C组·从零开始卷】第二