溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Java關鍵字break和continue如何使用

發(fā)布時間:2023-03-22 09:33:19 來源:億速云 閱讀:226 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“Java關鍵字break和continue如何使用”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“Java關鍵字break和continue如何使用”文章能幫助大家解決問題。

break和continue的說明

break   循環(huán)結構,一旦執(zhí)行,就結束(或跳出)當前循環(huán)結構,此關鍵字的后面,不能聲明語句
continue 循環(huán)結構,一旦執(zhí)行,就結束(或跳出)當次循環(huán)結構,此關鍵字的后面,不能聲明語句

此外,很多語言都有goto語句,goto語句可以隨意將控制轉移到程序中的任意一條語句上,然后執(zhí)行它,但使程序容易出錯。Java中的break和continue是不同于goto的。

break語句用于終止某個語句塊的執(zhí)行

{    ……     
    break;
     ……
}

break語句出現(xiàn)在多層嵌套的語句塊中時,可以通過標簽指明要終止的是哪一層語句塊

label1: {   ……        
    label2:         {   ……
    label3:             {   ……
                           break label2;
                           ……
                     }
                 }
            }
  • continue語句出現(xiàn)在多層嵌套的循環(huán)語句體中時,也可以通過標簽指明要跳過的是哪一層循環(huán)。

  • 標號語句必須緊接在循環(huán)的頭部。標號語句不能用在非循環(huán)語句的前面。

練習、找出100以內(nèi)所有的素數(shù)(質數(shù))?100000以內(nèi)的呢?

目的:不同的代碼的實現(xiàn)方式,可以效率差別很大。

分析:素數(shù)(質數(shù)):只能被1和它本身整除的自然數(shù)。 ---> 從2開始,到這個數(shù)-1為止,此范圍內(nèi)沒有這個數(shù)的約數(shù)。則此數(shù)是一個質數(shù)。 比如:2、3、5、7、11、13、17、19、23、...

方案1

static void printSushu() {
        long start = System.currentTimeMillis();//開始時間
        int cnt = 0;//個數(shù)
        for (int i = 2; i <= 100000; i++) {
            boolean isFlag = true;//是否除盡
            for (int j = 2; j <= i - 1; j++) {
                if (i % j == 0) {
                    isFlag = false;
                }
            }
            if (isFlag) {
                cnt++;
            }
        }
        long end = System.currentTimeMillis();
        System.out.println("質數(shù)的個數(shù)為:" + cnt);
        System.out.println("執(zhí)行此程序花費的毫秒數(shù)為:" + (end - start));
       /* 質數(shù)的個數(shù)為:9592
        執(zhí)行此程序花費的毫秒數(shù)為:18203*/
    }

方案2 

static void printSushu1() {
        long start = System.currentTimeMillis();//開始時間
        int cnt = 0;//個數(shù)
        for (int i = 2; i <= 100000; i++) {
            boolean isFlag = true;//是否除盡
            for (int j = 2; j <= Math.sqrt(i); j++) {
                if (i % j == 0) {
                    isFlag = false;
                    break;
                }
            }
            if (isFlag) {
                cnt++;
            }
        }
        long end = System.currentTimeMillis();
        System.out.println("質數(shù)的個數(shù)為:" + cnt);
        System.out.println("執(zhí)行此程序花費的毫秒數(shù)為:" + (end - start));
     /*   質數(shù)的個數(shù)為:9592
        執(zhí)行此程序花費的毫秒數(shù)為:24*/
    }

方案3、

static void printSushu2() {
        long start = System.currentTimeMillis(); //記錄當前時間距離1970-1-1 00:00:00的毫秒數(shù)

        int count = 0;//記錄質數(shù)的個數(shù)

        label:
        for (int i = 2; i <= 100000; i++) {  //i
            for (int j = 2; j <= Math.sqrt(i); j++) { //優(yōu)化2:將循環(huán)條件中的i改為Math.sqrt(i)
                if (i % j == 0) { //表明i有約數(shù)
                    continue label;
                }
            }
            //一旦程序能執(zhí)行到此位置,說明i就是一個質數(shù)
            // System.out.println(i);
            count++;
        }

        long end = System.currentTimeMillis();
        System.out.println("質數(shù)的個數(shù)為:" + count);
        System.out.println("執(zhí)行此程序花費的毫秒數(shù)為:" + (end - start));//1062

    }

 練習2、生成 1-100 之間的隨機數(shù),直到生成了 97 這個數(shù),看看一共用了幾次?提示:使用 (int)(Math.random() * 100) + 1

static void printNum() {
        int count = 0;//記錄循環(huán)的次數(shù)(或生成隨機數(shù)進行比較的次數(shù))
        while (true) {
            int random = (int) (Math.random() * 100) + 1;
            count++;
            if (random == 97) {
                break;
            }
        }
        System.out.println("直到生成隨機數(shù)97,一共比較了 " + count + " 次!!");
    }

關于“Java關鍵字break和continue如何使用”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI