JavaSE 03 (循環(huán)跳轉(zhuǎn)和嵌套、隨機數(shù)、數(shù)組)

1.循環(huán)跳轉(zhuǎn)

  • break: 是用來終止循環(huán)的, 循環(huán)不再繼續(xù)執(zhí)行.
//案例: 打印10次`HelloWorld`,  當打印第五次的時候, 結(jié)束循環(huán).
public class BreakDemo01 {
    public static void main(String[] args) {
        System.out.println("start");
        //1. 定義for循環(huán), 打印10次HelloWorld
        for (int i = 1; i <= 10 ; i++) {
            //2.當i等于5的時候, 結(jié)束循環(huán)
            if (i == 5)
                break;
            System.out.println("Hello World! " + i);
        }
        System.out.println("end");
    }
  • continue: 用來結(jié)束本次循環(huán), 進行下一次循環(huán)的, 循環(huán)還會繼續(xù)執(zhí)行.
//案例; 打印1~10之間, 所有不是3倍數(shù)的整數(shù).
public class ContinueDemo02 {
    public static void main(String[] args) {
        System.out.println("start");
        //1. 通過for循環(huán), 獲取1 - 10之間所有的整數(shù)
        for (int i = 1; i <= 10; i++) {
            //2. 判斷該數(shù)字是否是3的倍數(shù).
            if (i % 3 == 0)
                //3. 如果是, 就結(jié)束本次循環(huán)
                continue;
            //4. 如果不是, 就打印該數(shù)字的值.
            System.out.println(i);
        }
        System.out.println("end");
    }
}

2.循環(huán)嵌套

所謂的循環(huán)嵌套指的是循環(huán)結(jié)構(gòu)中還包裹著循環(huán)結(jié)構(gòu), 外邊的循環(huán)結(jié)構(gòu)叫外循環(huán), 里邊的循環(huán)結(jié)構(gòu)叫內(nèi)循環(huán).

循環(huán)嵌套用的最多的就是for循環(huán)的嵌套, 具體格式如下:

for(初始化條件; 判斷條件; 控制條件) {        //外循環(huán), 例如: 5   1      2
   for(初始化條件; 判斷條件; 控制條件) {     //內(nèi)循環(huán), 例如: 3   1,2,3  1,2,3
      //循環(huán)體;
   }
}
執(zhí)行流程

1.外循環(huán)執(zhí)行一次, 內(nèi)循環(huán)執(zhí)行一圈.
2.循環(huán)嵌套的總執(zhí)行次數(shù) = 外循環(huán)的次數(shù) * 內(nèi)循環(huán)的次數(shù).

案例:打印2020年1月至2023年12月之間所有的月份, 格式為: XXXX年XX月

//案例: 打印年月
public class ForForDemo04 {
    public static void main(String[] args) {
        //1. 定義外循環(huán), 控制年份的變化.
        for (int i = 2020; i <= 2023 ; i++) {       //外循環(huán)執(zhí)行一次, 內(nèi)循環(huán)執(zhí)行一圈.
            System.out.println("start");
            //變量i的取值: 2021, 2022, 2023
            //2. 定義內(nèi)循環(huán), 控制月份的變化.
            for (int j = 1; j <= 12 ; j++) {
                System.out.print(i + "年" + j + "月\t");
            }
            System.out.println();   //記得加換行
            System.out.println("end\r\n");
        }
    }

3.帶標號的循環(huán)操作

public class ForForDemo10 {
    public static void main(String[] args) {
        for (int i = 1; i <= 5; i++) {      //外循環(huán), 控制行.    i的值: 1,   
            for (int j = 1; j <= 5 ; j++) { //內(nèi)循環(huán), 控制列.    j的值: 1,2,3(整個循環(huán)結(jié)束)
                if (j == 3) {
                    break;   //這個break, 是用來結(jié)束哪個循環(huán)呢? 
                }
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

上述的代碼, 打印結(jié)果是一個5行2列的矩形星星圖案, 而我的需求是獲取一個1行2列的星星圖案, 這就意味著, 上述代碼中的break, 只要能直接結(jié)束外循環(huán)即可.
實際開發(fā)中, 為了方便我們操作循環(huán)嵌套中的指定循環(huán), 就需要用到帶標號的循環(huán)操作了.

格式
A: for(初始化條件; 判斷條件; 控制條件) {     //外循環(huán)
    B: for(初始化條件; 判斷條件; 控制條件) { //內(nèi)循環(huán)
        循環(huán)體;
    }
}

案例一 : break用法

優(yōu)化上述的代碼, 改為打印一個1行2列的星星圖案

public class ForForDemo10 {
    public static void main(String[] args) {
        A: for (int i = 1; i <= 5; i++) {      //外循環(huán), 控制行.
            B: for (int j = 1; j <= 5 ; j++) { //內(nèi)循環(huán), 控制列.
                if (j == 3) {
                    break A;   //這個break, 是用來結(jié)束哪個循環(huán)呢?
                }
                System.out.print("*");
            }
            System.out.println();
        }
    }
}

案例二: continue用法

打印1~100之間所有的質(zhì)數(shù), 并按照3個一行的形式進行輸出.

public class ForForDemo10 {
    public static void main(String[] args) {
        //打印1~100之間所有的質(zhì)數(shù), 并按照3個一行的形式進行輸出.
        //定義變量, 用來記錄1-100之間的 質(zhì)數(shù)個數(shù).
        int count = 0;
        //定義變量, 用來記錄一行打印幾個數(shù).
        int flag = 3;
        a: for (int i = 2; i < 100; i++) {
            for (int j = 2; j < i ; j++) {
                if (i % j == 0) {
                    //走到這里, 說明i不是質(zhì)數(shù).
                    continue a;
                }
            }
            System.out.print(i + (++count % flag == 0 ? "\r\n" : "\t"));
        }
    }
}

4.生成隨機數(shù)

  • Random類似Scanner排截,也是Java提供好的API(Application Programming Interface),內(nèi)部提供了產(chǎn)生隨機數(shù)的功能.

1.導入包

import java.util.Random;

2.創(chuàng)建隨機數(shù)Random對象.

Random r = new Random();

3.調(diào)用方法, 產(chǎn)生隨機數(shù)

int num = r.nextInt(10); //小括號中可以傳入任意的正整數(shù)
double num = r.nextDouble();  // [0, 1.0)之間的任意小數(shù)
boolean num = r.nextBoolean(10); // 生成均等的布爾值
r.setSeed()
public void setSeed(long seed)

該方法的作用是重新設(shè)置Random對象中的種子數(shù)辐益。
設(shè)置完種子數(shù)以后的Random對象和相同種子數(shù)使用
new關(guān)鍵字創(chuàng)建出的Random對象相同断傲。
隨機種子案例:
public class RandomDemo08 {
    public static void main(String[] args) {
        Random random = new Random(666);
//        Random random = new Random(666);
        random.setSeed(666);
        for (int i = 0; i <10 ; i++) {
            System.out.print(" " + random.nextInt(100));

        }
    }
}

解釋:
1.小括號中寫的整數(shù)是生成的隨機數(shù)的上限.
2.例如: 小括號中寫10 , 說明生成0~10之間的隨機數(shù), 包含0, 但是不包含10, 即: 包左不包右.
3.小括號中必須傳入正整數(shù), 否則會報IllegalArgumentException(非法參數(shù)異常).

數(shù)組的定義

方式一
  • 格式一:
數(shù)組存儲的數(shù)據(jù)類型[] 數(shù)組名字;
String[] str;
  • 方式二
    格式:
數(shù)組存儲的數(shù)據(jù)類型 數(shù)組名字[];
   String str2[];

數(shù)組的動態(tài)初始化

  • 格式:
 數(shù)組存儲的數(shù)據(jù)類型[] 數(shù)組名字 = new 數(shù)組存儲的數(shù)據(jù)類型[長度];
       int[] arr = new int[5];

注意:數(shù)組有定長特性,長度一旦指定智政,不可更改认罩。

數(shù)組的靜態(tài)初始化

//標準格式:
數(shù)組存儲的數(shù)據(jù)類型[] 數(shù)組名字 = new 數(shù)組存儲的數(shù)據(jù)類型[]{值1,值2续捂,值3垦垂,}
        int[] arr2 = new int[]{1,3,5,7,9};
  //簡寫形式:
數(shù)據(jù)類型[] 數(shù)組名 = {元素1,元素2,元素3...};
        int[] arr3 = {1, 4, 6, 8};

數(shù)組的訪問

格式:

數(shù)組名[索引]
System.out.println(arr[2]);
  • 長度屬性, 數(shù)組名.length 表示數(shù)組中元素的個數(shù);
  • 數(shù)組的最大索引值為數(shù)組名.length-1;

索引訪問數(shù)組中的元素:

  • 數(shù)組名[索引]=數(shù)值牙瓢,為數(shù)組中的元素賦值
  • 變量=數(shù)組名[索引]乔外,獲取出數(shù)組中的元素
public static void main(String[] args) {
    //定義存儲int類型數(shù)組,賦值元素1一罩,2杨幼,3,4聂渊,5
    int[] arr = {1,2,3,4,5};
    //為0索引元素賦值為6
    arr[0] = 6;
    //獲取數(shù)組0索引上的元素
    int i = arr[0];
    System.out.println(i);
    //直接輸出數(shù)組0索引元素
    System.out.println(arr[0]);
  //數(shù)組的遍歷差购,一個一個取出來
        for (int i = 0; i < arr.length ; i++) {
            System.out.println(arr[i]);
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市汉嗽,隨后出現(xiàn)的幾起案子欲逃,更是在濱河造成了極大的恐慌,老刑警劉巖饼暑,帶你破解...
    沈念sama閱讀 210,914評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件稳析,死亡現(xiàn)場離奇詭異,居然都是意外死亡弓叛,警方通過查閱死者的電腦和手機彰居,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,935評論 2 383
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來撰筷,“玉大人陈惰,你說我怎么就攤上這事”献眩” “怎么了抬闯?”我有些...
    開封第一講書人閱讀 156,531評論 0 345
  • 文/不壞的土叔 我叫張陵井辆,是天一觀的道長。 經(jīng)常有香客問我溶握,道長杯缺,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,309評論 1 282
  • 正文 為了忘掉前任睡榆,我火速辦了婚禮萍肆,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘肉微。我一直安慰自己匾鸥,他們只是感情好蜡塌,可當我...
    茶點故事閱讀 65,381評論 5 384
  • 文/花漫 我一把揭開白布碉纳。 她就那樣靜靜地躺著,像睡著了一般馏艾。 火紅的嫁衣襯著肌膚如雪劳曹。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,730評論 1 289
  • 那天琅摩,我揣著相機與錄音铁孵,去河邊找鬼。 笑死房资,一個胖子當著我的面吹牛蜕劝,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播轰异,決...
    沈念sama閱讀 38,882評論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼岖沛,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了搭独?” 一聲冷哼從身側(cè)響起婴削,我...
    開封第一講書人閱讀 37,643評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎牙肝,沒想到半個月后唉俗,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,095評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡配椭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,448評論 2 325
  • 正文 我和宋清朗相戀三年虫溜,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片股缸。...
    茶點故事閱讀 38,566評論 1 339
  • 序言:一個原本活蹦亂跳的男人離奇死亡吼渡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出乓序,到底是詐尸還是另有隱情寺酪,我是刑警寧澤坎背,帶...
    沈念sama閱讀 34,253評論 4 328
  • 正文 年R本政府宣布,位于F島的核電站寄雀,受9級特大地震影響得滤,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜盒犹,卻給世界環(huán)境...
    茶點故事閱讀 39,829評論 3 312
  • 文/蒙蒙 一懂更、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧急膀,春花似錦沮协、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,715評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至晨雳,卻和暖如春行瑞,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背餐禁。 一陣腳步聲響...
    開封第一講書人閱讀 31,945評論 1 264
  • 我被黑心中介騙來泰國打工血久, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人帮非。 一個月前我還...
    沈念sama閱讀 46,248評論 2 360
  • 正文 我出身青樓氧吐,卻偏偏與公主長得像,于是被迫代替她去往敵國和親末盔。 傳聞我的和親對象是個殘疾皇子筑舅,可洞房花燭夜當晚...
    茶點故事閱讀 43,440評論 2 348

推薦閱讀更多精彩內(nèi)容

  • 官網(wǎng) 中文版本 好的網(wǎng)站 Content-type: text/htmlBASH Section: User ...
    不排版閱讀 4,369評論 0 5
  • 第四天 數(shù)組【悟空教程】 第04天 Java基礎(chǔ) 第1章數(shù)組 1.1數(shù)組概念 軟件的基本功能是處理數(shù)據(jù),而在處理數(shù)...
    Java幫幫閱讀 1,587評論 0 9
  • 概要 64學時 3.5學分 章節(jié)安排 電子商務(wù)網(wǎng)站概況 HTML5+CSS3 JavaScript Node 電子...
    阿啊阿吖丁閱讀 9,124評論 0 3
  • Comment your JavaScript Code JavaScript中的注釋方式有以下兩種: 使用 //...
    歸云丶閱讀 1,097評論 0 0
  • 1 順序語句 語句:使用分號分隔的代碼稱作為一個語句庄岖。 注意:沒有寫任何代碼只是一個分號的時候豁翎,也是一條語句,...
    哈哈哎呦喂閱讀 376評論 0 0