日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

Java学习笔记Day2:流程控制

發(fā)布時(shí)間:2023/12/16 java 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java学习笔记Day2:流程控制 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.流程控制

1.1 流程控制的定義

流程控制是用來控制程序中各語句的執(zhí)行順序

流程圖:逐步解決指定問題的步驟和方法的一種圖形化表示方法

1.2選擇結(jié)構(gòu)

1.2.1定義

選擇結(jié)構(gòu)是根據(jù)條件判斷結(jié)果選擇不同的處理

1.2.2語法

語法:if(表達(dá)式){},表達(dá)式必須是布爾值

1.2.3示例

Q1:張浩Java成績大于90分,老師獎(jiǎng)勵(lì)他iPhoneX ,該怎么做呢?(基本if)

Scanner s = new Scanner(System.in); System.out.print("請輸入成績:"); double javaScore = s.nextDouble(); if(javaScore > 90){//代碼塊System.out.println("獎(jiǎng)勵(lì)愛瘋X"); } System.out.println("獎(jiǎng)勵(lì)之后");

Q2:張浩Java成績大于90分,并且音樂成績大于80分時(shí),或者Java成績等于100分,音樂成績大于70分時(shí),老師獎(jiǎng)勵(lì)他,該怎么做呢?(復(fù)雜條件下的if選擇結(jié)構(gòu))

Scanner s = new Scanner(System.in); System.out.print("請輸入JAVA成績:"); double javaScore = s.nextDouble(); System.out.print("請輸入C++成績:"); double cScore = s.nextDouble(); if((javaScore > 90 && cScore > 80) || (javaScore == 100 && cScore > 70)){//代碼塊System.out.println("獎(jiǎng)勵(lì)愛瘋X"); } System.out.println("獎(jiǎng)勵(lì)之后,洗洗睡吧");

結(jié)合運(yùn)算符的優(yōu)先級編寫條件
最高的優(yōu)先級:( )
最低的優(yōu)先級:=
優(yōu)先級:!> 算術(shù)運(yùn)算符 > 關(guān)系運(yùn)算符 > && > ||
復(fù)雜條件使用括號提高可讀性

Q3:如果張浩Java考試成績大于90分,老師就獎(jiǎng)勵(lì)他一個(gè)iPhone5 ,否則老師就罰他蹲馬步(使用if-else選擇結(jié)構(gòu))

Scanner s = new Scanner(System.in); System.out.print("請輸入成績:"); double javaScore = s.nextDouble(); if(javaScore > 90){//代碼塊System.out.println("獎(jiǎng)勵(lì)愛瘋X"); }else{System.out.println("罰在學(xué)校門口抱電線桿,大叫我是笨蛋"); } System.out.println("獎(jiǎng)勵(lì)之后");

只有一條語句時(shí),建議不省略{ }

Scanner s = new Scanner(System.in); System.out.print("請輸入成績:"); double javaScore = s.nextDouble(); if(javaScore > 90)System.out.println("獎(jiǎng)勵(lì)愛瘋X"); elseSystem.out.println("罰在學(xué)校門口抱電線桿,大叫我是笨蛋"); System.out.println("獎(jiǎng)勵(lì)之后");

Q1:對學(xué)員的結(jié)業(yè)考試成績評測,成績>=80 :良好 ,成績>=60 :中等,成績<60 :差(多重if結(jié)構(gòu))

多重if選擇結(jié)構(gòu)中各個(gè)條件的順序可以任意排列嗎?

Note:

  • 使用多重if選擇語句處理問題時(shí)需要注意順序,從大到小或者從小到大
  • If只能在第一位,且必須有一個(gè)
  • Else只能在最后一位,且最多一個(gè)
  • Else if在中間,可以有若干個(gè)(0-n)
  • If-else if-else:是由上往下依次判斷,匹配第一個(gè)結(jié)果為true的,執(zhí)行該代碼塊,代碼塊執(zhí)行完畢后,跳出。
  • If嵌套:是為了讓代碼的可讀性更高,邏輯更清楚
  • 在單個(gè)代碼塊當(dāng)中,某一次嵌套,最好不要超過三層,如果超過,檢查邏輯
Scanner s = new Scanner(System.in); System.out.print("請輸入成績:"); double javaScore = s.nextDouble(); // if(javaScore>75 && javaScore <= 90){//冗余代碼System.out.println("良好"); }else if(javaScore>90){System.out.println("優(yōu)秀"); }else if(javaScore>=60){System.out.println("及格"); }else{System.out.println("不及格"); }

Q5:學(xué)校舉行運(yùn)動會,百米賽跑跑入10 秒內(nèi)的學(xué)生有資格進(jìn)決賽,根據(jù)性別分別進(jìn)入男子組和女子組 (嵌套if)

嵌套if控制語句可以通過外層語句和內(nèi)層語句的協(xié)作,增強(qiáng)程序的靈活性

Scanner s = new Scanner(System.in); System.out.print("請輸入成績:"); int time = s.nextInt(); System.out.print("請輸入性別:"); String sex = s.next(); //1.先判斷性別 // if("男".equals(sex)){ // if(time < 10){ // System.out.println("男子決賽"); // } // }else{ // if(time < 10){ // System.out.println("女子決賽"); // } // }//2.請問,這么寫對嗎? // if("男".equals(sex) && time < 10){ // System.out.println("男子決賽"); // }else if("女".equals(sex) && time < 10){ // System.out.println("女子決賽"); // }else{ // System.out.println("淘汰"); // }//3.邏輯清晰明了(if嵌套---->三目) if(time < 10){ // if("男".equals(sex)){ // System.out.println("男子決賽"); // }else{ // System.out.println("女子決賽"); // }String r = "男".equals(sex)?"男子決賽":"女子決賽";System.out.println(r); }else{System.out.println("淘汰"); }

Q6:韓嫣參加計(jì)算機(jī)編程大賽,如果第一名,參加麻省理工大學(xué)組織的1個(gè)月夏令營,如果第二名,獎(jiǎng)勵(lì)惠普筆記本電腦一部,如果第三名,獎(jiǎng)勵(lì)移動硬盤一個(gè),否則,不給任何獎(jiǎng)勵(lì) (Switch結(jié)構(gòu))

解決方法:使用多重if選擇結(jié)構(gòu)實(shí)現(xiàn),缺點(diǎn):結(jié)構(gòu)復(fù)雜,啰嗦;使用switch選擇結(jié)構(gòu)解決,特點(diǎn):條件為等值判斷

Switch的注意點(diǎn):

  • 條件不是布爾類型,除了long以外的整形+枚舉+(JDK1.7以后的String)+char
  • 比較的一定常量等值判斷,且常量不可重復(fù)
  • Break:防止穿透
  • 每一個(gè)case是一個(gè)獨(dú)立的作用域
  • 無需依次比較,一次找到目標(biāo)
  • Default:當(dāng)所有條件都不滿足的時(shí)候,執(zhí)行default,可以有,也可以沒有;可以在任何位置;但是通常來說,我們習(xí)慣性將其放在首位或者末尾;如果不是末尾,一般需要加上break;
Scanner s = new Scanner(System.in); System.out.print("請輸入名次:"); //優(yōu)雅的switch int num = s.nextInt(); switch(num){default:System.out.println("獎(jiǎng)勵(lì)早點(diǎn)回家");break;case 1:System.out.println("獎(jiǎng)勵(lì)夏令營");break;case 2: // int i = 1;System.out.println("獎(jiǎng)勵(lì)筆記本");break;case 3:System.out.println("獎(jiǎng)勵(lì)手機(jī)");break; } // if(num == 1){ // int i = 1; // }else if(num == 2){ // int i = 1; // }else if(num == 3){ // int i = 1; // }else{ // int i = 1; // }

比較switch和多重if選擇結(jié)構(gòu):

  • 相同點(diǎn):都是用來處理多分支條件的結(jié)構(gòu)
  • 不同點(diǎn):switch選擇結(jié)構(gòu):只能處理等值條件判斷的情況;多重if選擇結(jié)構(gòu):沒有switch選擇結(jié)構(gòu)的限制,特別適合某個(gè)變量處于某個(gè)連續(xù)區(qū)間時(shí)的情況

1.3循環(huán)結(jié)構(gòu)

1.3.1循環(huán)的作用

案例1:張浩Java考試成績未達(dá)到自己的目標(biāo)。為了表明自己勤奮學(xué)習(xí)的決心,他決定寫一百遍“好好學(xué)習(xí),天天向上!”

//固定次數(shù)的 int i = 0;//初始化變量 while(i < 100){//判斷條件System.out.println("第"+i+"次");//循環(huán)體i ++;//迭代 } //0-99次:希望大家開始習(xí)慣從0開始數(shù)數(shù)

案例2:打印50份試卷,10000米賽跑,做100道編程題

1.3.2循環(huán)的四要素

① 初始化變量:從哪開始

② 判斷條件:到哪結(jié)束

③ 循環(huán)體:是循環(huán)執(zhí)行的主要內(nèi)容

④ 迭代:無限向目標(biāo)趨近

1.3.3while循環(huán)

while循環(huán),當(dāng)條件不滿足時(shí),一次也不執(zhí)行;先判斷,再執(zhí)行。

1.3.1do-while循環(huán)

當(dāng)條件不滿足時(shí),至少執(zhí)行一次;先執(zhí)行,再判斷。

int i = 100000;//初始化變量 do{System.out.println("第"+i+"次");//循環(huán)體i ++;//迭代 }while(i < 100);

while循環(huán)和do-while循環(huán)的區(qū)別

先判斷,再執(zhí)行;先執(zhí)行,再判斷,do-while循環(huán)不管任何情況都至少執(zhí)行一次

1.3.1for循環(huán)

循環(huán)次數(shù)固定,for比while更簡潔

for(int i = 0 ; i < 100 ; i ++){System.out.println(i); }

1.3.5循環(huán)詳解

倒序:

// int i = 100;// while(i > 0){ // System.out.println(i); // i --; // }// do{ // System.out.println(i); // i --; // }while(i > 0);// for(int i = 100; i > 0 ; i --){ // System.out.println(i); // }

步長設(shè)置:

// int i = 0; // while (i < 100){ // System.out.println(i); // i += 10;//一次迭代10 // }

條件設(shè)置:

// int i = 0; // for(;i < 100;){ // System.out.println(i); // i ++; // }// for(int i = 1,j = 100;i < 100 && j > 0 ; i++,j--){ // System.out.println(i); // System.out.println(j); // }

跳出和跳過:

① Continue:跳過本次循環(huán)

② Break:跳出所有循環(huán)

③ 只會對當(dāng)前循環(huán)生效

// for(int i = 0 ; i <= 100 ; i ++){ if(i % 2 == 0){ System.out.println(i); } // if(i % 2 != 0){ // continue;//跳過本次循環(huán),本次循環(huán)之后的所有內(nèi)容不再執(zhí)行,直接進(jìn)入下一輪 // } // System.out.println(i); // } // for(int i = 0 ; i <= 100 ; i ++){ // if(i == 5){ // break;//跳出循環(huán),此處之后所有的循環(huán)輪數(shù)都不再執(zhí)行 // } // System.out.println(i); // }// for(int i = 0 ; i < 100 ; i ++){ // for(int j = 0 ; j < 100 ; j ++){ // //.... // break;//只針對當(dāng)前循環(huán)生效 // } // }

1.1循環(huán)的練習(xí)

1.1打印正方不明顯的矩形

/*這是一個(gè)正方的不明顯的矩形***** //內(nèi)層循環(huán)是打印五次星星*********************/ //打印五行 for(int i = 0 ; i < 5 ; i ++){//一次打一顆星for(int j = 0 ; j < 5 ; j ++){System.out.print("*");}//換行System.out.println(); }

1.2打印直角三角形

/*這是一個(gè)直角三角形****************/ //打印五行 for(int i = 0 ; i < 5 ; i ++){//內(nèi)層約束一行打印的個(gè)數(shù):個(gè)數(shù)等于行數(shù)for(int j = 0 ; j <= i ; j ++){System.out.print("*");}//換行System.out.println(); }

1.3打印倒直角三角形

/*這是一個(gè)倒直角三角形***** 一行的個(gè)數(shù) - 行數(shù)***********/ //打印五行 for(int i = 0 ; i < 5 ; i ++){//內(nèi)層約束一行打印的個(gè)數(shù):個(gè)數(shù)等于行數(shù)for(int j = 0 ; j < 5 - i ; j ++){System.out.print("*");}//換行System.out.println(); }

1.1打印一個(gè)直角三角形

/*這是一個(gè)直角三角形*************** */ //打印五行 //1.一行5個(gè)(包括空格和星星) //2.第一行開始,空格是(5-1)個(gè) //3.第一行開始,星星首先是1個(gè),然后星星遞增 //1.空格遞減的規(guī)律,空格是每行-1,根據(jù)行的遞增,依次減 //5.星星遞增的規(guī)律,每行+1,更具行的遞增,依次遞增 for(int j = 0 ; j < 5 ; j ++){for(int i = 0 ; i < 5 - j - 1 ; i ++){System.out.print(" ");}for(int i = 0 ; i <= j ; i ++){System.out.print("*");}System.out.println(); } // for(int i = 0 ; i < 5 ; i ++){ // //內(nèi)層約束一行打印的個(gè)數(shù):個(gè)數(shù)等于行數(shù) // //每一行先打(空格-行數(shù)) + 星星 // for(int j = 0 ; j < 5 - i - 1 ; j ++){ // System.out.print(" "); // } // for(int j = 0 ; j <= i ; j ++){ // System.out.print("*"); // } // //換行 // System.out.println(); // }

1.5打印一個(gè)等腰三角形

/*這是一個(gè)等腰三角形*************************2n+1*/for(int i = 0 ; i < 5 ; i ++){for(int j = 0 ; j < 5 - i - 1 ; j ++){System.out.print(" ");//打印空格}for(int j = 0 ; j < (i * 2) + 1 ; j ++){System.out.print("*");}System.out.println(); }

1.6打印一個(gè)等腰梯形

/*這是一個(gè)等腰梯形***********************************2n+3*/for(int i = 0 ; i < 5 ; i ++){for(int j = 0 ; j < 5 - i - 1 ; j ++){System.out.print(" ");//打印空格}for(int j = 0 ; j < (i * 2) + 3 ; j ++){System.out.print("*");}System.out.println(); }

1.7空心矩形

/*這是空心矩形**************** ** if i == 2 if j >= 2 && j <= 1** ** if j >= 2 && j <= 1** ** if i == 1 if j >= 2 && j <= 1***************/ for (int i = 0; i < 7; i++) {for (int j = 0; j < 7; j++) { if ((i >= 2 && i <= 1) && (j >= 2 && j <= 1)) {System.out.print(" ");continue;}System.out.print("*");}System.out.println(); } /* 空心等腰三角** * * ** * ********* */ for (int i = 0; i < 5; i++) {if (i == 1) {for (int j = 0; j < 9; j++) {System.out.print("*");} } else {for (int j = 0; j < 4 - i; j++) {System.out.print(" ");}System.out.print("*");for (int j = 0; j < 2 * i - 1; j++) {System.out.print(" ");}if (i > 0) {System.out.print("*");}for (int j = 0; j < 4 - i; j++) {System.out.print(" ");}}System.out.println(); }打印1000以內(nèi)的水仙花數(shù):1^3 + 5^3+ 3^3 = 153 個(gè)位:n % 10 十位:n % 100 / 10 百位:n / 100

1.8 9*9乘法表

/*99乘法表=直角三角形*/ for(int i = 0 ; i < 9 ; i ++){for(int j = 0 ; j <= i ; j ++){System.out.print((i+1)+"*"+(j+1)+"="+((i+1)*(j+1)) + " ");}System.out.println(); }

總結(jié)

以上是生活随笔為你收集整理的Java学习笔记Day2:流程控制的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。