java零基礎入門-break、continue講解

語言: CN / TW / HK

「這是我參與2022首次更文挑戰的第12天,活動詳情檢視:2022首次更文挑戰

哈嘍,各位小夥伴們好,我是喵手。

一、前言

上一期,我們著重是講解了如何用迴圈解決一些演算法題,對吧,雖然都比較簡單,但是對於剛入門的小夥伴們來說,就不是很簡單了,對吧,所以還是有必要單獨拿一期進行講解,畢竟這樣方便剛入門的小夥伴學習。

那這一期,我們就要對流程控制語句之break、continue語法,講完這期,我們就將進行一個大板塊的講解,至於這些內容,還沒掌握就得把這幾期的內容多進行鞏固,直到學會為止。

二、break語句

首先break語句目的是結束迴圈,跳出迴圈體。不管是那種迴圈,只要執行到break語句,直接終止迴圈,然後按順序執行迴圈體之外的程式碼。

可以使用break語句強行退出迴圈結構,忽略迴圈體中的其他任何語句和迴圈的條件判斷。在迴圈中一旦碰到break,迴圈就被終止,在迴圈後面的語句就得重新開始。

如下,我給大家舉個例項,進行演示break。

做一個簡易版抽獎,中獎數可以由舉辦方進行鍵盤輸入,抽獎次數是10次,然後由抽獎人進行手動抽獎,然後機器進行判斷,會提示你大了還是小了還是中獎了。

/**
 * 進行抽獎
 */
public static void isWin() {

    //輸入中獎數
    System.out.println("請輸入中獎數數字:");
    Scanner input = new Scanner(System.in);
    int winNum = input.nextInt(); // 接收鍵盤輸入資料
    //記錄抽獎輪數
    int lunshu = 0;
    for (int i = 1; i <= 10; i++) {
        lunshu = i;        
        System.out.println("-----------進行第" + i + "輪猜數-----------");
        System.out.println("請輸入你要猜的數字:");
        int cai = input.nextInt();
        if (cai > winNum) {
            System.out.println("猜大了!");
        }
        if (cai < winNum) {
            System.out.println("猜小了!");
        }
        if (cai == winNum) {
            System.out.println("恭喜你,猜對了!");
            break; //猜對直接跳出迴圈
        }
    }
    if(lunshu>10){
        System.out.println("沒抽獎次數了!請進行續費");
        return;    
    }
}

實際控制檯輸出:

請輸入中獎數數字:
50
-----------進行第1輪猜數-----------
請輸入你要猜的數字:
10
猜小了!
-----------進行第2輪猜數-----------
請輸入你要猜的數字:
60
猜大了!
-----------進行第3輪猜數-----------
請輸入你要猜的數字:
40
猜小了!
-----------進行第4輪猜數-----------
請輸入你要猜的數字:
50
恭喜你,猜對了!

解析:

  • 總共每個人十輪抽獎。
  • 每次抽獎需要進行抽獎數統計,然後就是核對抽獎數是否猜對了。
  • 重點:與抽獎數核對正確,此刻就不需要再進行抽獎輪詢了。所以break,進行跳出迴圈結構。
  • 若十次次數用完了,提醒使用者沒有抽獎次數。

如上演示,你就能理解了,break()語句起的就是這個作用,在符合約定的情況下,break直接迴圈,就如上方抽獎核對中了了,就要立馬跳出此次迴圈,終止迴圈,繼續執行迴圈體外的程式碼,判斷如果十次次數都用光了,輸出“沒抽獎次數!請進行續費”。

三、continue語句

有時強迫一個迴圈提早結束此次迴圈是有用的,也就是,你可能想要繼續執行整個迴圈,但是要忽略這次重複剩餘的迴圈體的語句,這種情況,java就為此提供了一種語句--continue。其實,continue的誕生就是對break語句的一個補充。

continue語句類似於break語句。但它只能出現在迴圈體中,它與break語句的區別在於:continue並不是終止迴圈,而是跳過此次迴圈,也就是跳過當前的迴圈,繼續進入下一次的迴圈。

簡單來說,continue是忽略迴圈語句的單次迴圈。

注意:continue 語句只能用在for迴圈、while 語句或者 foreach 語句的迴圈體之中,在這之外的任何地方使用它都會引起語法錯誤,是除了這三種情況之外都不能使用。

下面我給大家舉個例子,結合實際場景:

請打印出所給的數組裡頭分別是偶數、奇數的個數。

/**
 * 計算所給出的數組裡頭,是偶數的個數,奇數的個數
 */
public static void printNum() {
    int[] nums = {1, 5, 23, 44, 66, 88, 67, 77, 99};
    //統計偶數個數
    int total1 = 0;
    //統計奇數個數
    int total2 = 0;
    for (int num : nums) {
        if (num % 2 == 0) {
            total1 += 1;
            continue;//跳過此次迴圈
        }
        if (num % 2 != 0) {
            total2 += 1;
            continue;//跳過此次迴圈
        }
    }
    System.out.println("偶數個數為:" + total1);
    System.out.println("奇數個數為:" + total2);}

實際執行結果:

偶數個數為:3
奇數個數為:6

對上述方法進行解析:

為何要加continue語句,目的在你如果迴圈到數字如果是偶數,continue直接進入下一輪的數字判斷,而不是接著走下邊的if(num%2 !=0)判斷,這樣就是在提高計算效能,相比你不加好所以一般進行統計,有多重判斷的時候,如果只符合一種情況,那記得把continue語句加上!這對於大資料、海量資料而言,真的有效能上的提升。

三、課後作業

為了平衡大家的學習任務量,所以會有課後作業練習,然後會在下一期進行重點解析,一來為了幫大家鞏固本期學習內容,二來幫大家加強練習,早日掌握該知識點。

第一題:統計一段英語句子中帶有多少個“o”的字元。

英語句子:Whatever is worth doing is worth doing well。

提示:取第幾位的字母可以按如下進行獲取。

public static void countO(){

    StringBuffer letters = new StringBuffer("Whatever is worth doing is worth doing well. ");
    //取第0為的字母
    char o = letters.charAt(0);
}

第二題:判斷閏年平年並且輸出某月的天數

提示:

所謂閏年,就是指 2 月有 29 天的那一年。閏年同時滿足以下條件:

  • 年份能被 4 整除。
  • 年份若是 100 的整數倍,須被 400 整除,否則是平年。
//判斷是否是閏年
if ((year % 4 == 0 && year % 100 != 0) || (year % 400 == 0)) {
    System.out.println(year + "閏年");
}

第三題:列印九九乘法表。

以上的提示已經夠明顯啦,所以剩下的大家就好好想想,其實都很簡單的哦,就運用咱們目前所學知識即可解決。加油哦。

四、結尾

好啦,以上就是我這期的全部內容,如果有任何疑問,歡迎下方留言哦,咱們下期見。

... ...

學習不分先後,知識不分多少;事無鉅細,當以虛心求教;三人行,必有我師焉!!!

wished for you successed !!!

---------------------------------------------------------------------

⭐️若喜歡我,就請關注我叭。

⭐️若對您有用,就請點贊叭。

⭐️若有疑問,就請評論留言告訴我叭。

---------------------------------------------------------------------