最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java循環(huán)嵌套詳解及經(jīng)典列題

 更新時(shí)間:2024年12月23日 09:44:18   作者:Springboard_jaj  
這篇文章主要給大家介紹了關(guān)于Java循環(huán)嵌套詳解及經(jīng)典列題,包括循環(huán)嵌套的結(jié)構(gòu)、變量作用域、不同類型循環(huán)的嵌套等,通過示例和經(jīng)典練習(xí)題,展示了如何使用循環(huán)嵌套解決實(shí)際問題,需要的朋友可以參考下

引言代碼,用嵌套循環(huán)做基礎(chǔ)的九九乘法表

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(j + "×" + i + "=" + (i * j) + "\t");
    }
    System.out.println();
}

一、循環(huán)嵌套的結(jié)構(gòu)

 外層循環(huán)與內(nèi)層循環(huán)

在Java中,循環(huán)嵌套是指一個(gè)循環(huán)語句(外層循環(huán))內(nèi)部包含另一個(gè)循環(huán)語句(內(nèi)層循環(huán))。外層循環(huán)每執(zhí)行一次,內(nèi)層循環(huán)會完整地執(zhí)行一遍。
例如,當(dāng)外層是 for 循環(huán),內(nèi)層也是 for 循環(huán)時(shí):
 

for (int i = 1; i <= 3; i++) {
    for (int j = 1; j <= 2; j++) {
        System.out.println("i = " + i + ", j = " + j);
    }
}
 

這里外層 for 循環(huán)的變量 i 從1到3變化。對于 i 的每一個(gè)值,內(nèi)層 for 循環(huán)的變量 j 從1到2變化,并且在每次內(nèi)層循環(huán)中都會打印出 i 和 j 的值。所以總共會打印出6行結(jié)果。

多層嵌套

可以有多層循環(huán)嵌套,如三層循環(huán)嵌套。

考慮一個(gè)簡單的例子,模擬一個(gè)三維空間中的坐標(biāo)遍歷(這里只是簡單示例,不涉及實(shí)際的三維空間意義):

for (int x = 0; x < 2; x++) {
    for (int y = 0; y < 3; y++) {
        for (int z = 0; z < 4; z++) {
            System.out.println("x = " + x + ", y = " + y + ", z = " + z);
        }
    }
}

外層循環(huán)控制 x 坐標(biāo),中層循環(huán)控制 y 坐標(biāo),內(nèi)層循環(huán)控制 z 坐標(biāo)。隨著嵌套層數(shù)的增加,循環(huán)執(zhí)行的總次數(shù)是各層循環(huán)次數(shù)的乘積。在這個(gè)例子中,總共會執(zhí)行 2 * 3 * 4 = 24 次循環(huán)。

二、循環(huán)嵌套中的變量作用域

內(nèi)層循環(huán)與外層循環(huán)變量

內(nèi)層循環(huán)和外層循環(huán)的變量是相互獨(dú)立的,即使它們的變量名相同(雖然不推薦這樣做,以避免混淆)。
例如:

 
for (int i = 1; i &lt;= 3; i++) {
    for (int i = 1; i &lt;= 2; i++) {
        System.out.println(i);
    }
}
 

這里內(nèi)層循環(huán)的 i 會覆蓋外層循環(huán)的 i ,但這種用法容易導(dǎo)致邏輯錯(cuò)誤,所以最好使用不同的變量名。

變量的初始化和更新

在循環(huán)嵌套中,每個(gè)循環(huán)的變量都按照自己的初始化、條件判斷和更新規(guī)則進(jìn)行操作。

例如,在 for 循環(huán)嵌套中,外層 for 循環(huán)的變量按照外層的初始化表達(dá)式、條件表達(dá)式和更新表達(dá)式進(jìn)行操作,內(nèi)層 for 循環(huán)的變量同理。

三、不同類型循環(huán)的嵌套

for 循環(huán)與 while 循環(huán)嵌套

可以將 for 循環(huán)作為外層循環(huán), while 循環(huán)作為內(nèi)層循環(huán),反之亦然。

例如,以 for 循環(huán)為外層, while 循環(huán)為內(nèi)層:

for (int i = 1; i <= 3; i++) {
    int j = 1;
    while (j <= 2) {
        System.out.println("i = " + i + ", j = " + j);
        j++;
    }
}

這里外層 for 循環(huán)控制 i 的值,對于每個(gè) i ,內(nèi)層 while 循環(huán)控制 j 的值并打印出 i 和 j 的組合。

 while 循環(huán)與 do - while 循環(huán)嵌套

同樣可以實(shí)現(xiàn) while 循環(huán)包含 do - while 循環(huán)或者相反的嵌套關(guān)系。

例如, while 循環(huán)包含 do - while 循環(huán):

int m = 1;
while (m <= 2) {
    int n = 1;
    do {
        System.out.println("m = " + m + ", n = " + n);
        n++;
    } while (n <= 3);
    m++;
}

外層 while 循環(huán)控制 m 的值,內(nèi)層 do - while 

(1)循環(huán)嵌套:在循環(huán)體中再嵌套一個(gè)循環(huán),如while中可以繼續(xù)嵌套while,比較常見的是for嵌套for

(2)語法結(jié)構(gòu)

for(int i=0;i<10,i++){
   for(int j=0;  j<20;  j++){
    ..........
   }
}

2.案例分析

1.(示列):運(yùn)動(dòng)員跑50圈,每跑一圈做一個(gè)俯臥撐

public static void main (String[] args){
     for (int i=0; i<50; i++){
        System.out.println("跑了第"+i+"圈");
        for(int j=0; j<10; j++){
            System.out.println("\t做了第"+i+"圈,第"+j+"個(gè)俯臥撐");
          }
       }
    }

四.嵌套經(jīng)典列題(九九乘法表制作)

例題

每跑一圈 做十個(gè)俯臥撐,一共跑十圈

for (int a = 0; a < 10; a++) {
    System.out.println("\n正在跑圈");
    for (int b = 0; b < 10; b++) {
        System.out.print("\t俯臥撐");
    }
}

例題

跑100圈 ,第一圈 做一個(gè)俯臥撐 第二圈 做兩個(gè)俯臥撐......

for (int a = 0; a < 10; a++) {
    System.out.println("\n正在跑圈");
    for (int b = 0; b <= a; b++) {
        System.out.print("\t俯臥撐");
    }
}

例題

打印一個(gè)由星號 '*' 組成的矩形。大小是 4*4

for (int a = 0; a < 4; a++) {
    for (int b = 0; b < 4; b++) {
        System.out.print("*\t");
    }
    System.out.println("");
}

例題

打印直角三角形,高是6層

for (int a = 0; a < 6; a++) {
    for (int b = 0; b <= a; b++) {
        System.out.print("*\t");
    }
    System.out.println("");
}

例題

打印9*9乘法表

for (int i = 1; i <= 9; i++) {
    for (int j = 1; j <= i; j++) {
        System.out.print(j + "×" + i + "=" + (i * j) + "\t");
    }
    System.out.println();
}

例題

公雞每只5元,母雞每只3元,小雞每3只1元;一百元買一百只雞,要求三種雞都要買,有多少種購買組合?

for (int roosters = 1; roosters < 20; roosters++) {
    for (int hens = 1; hens < 34; hens++) {
        int chicks = 100 - roosters - hens;
        if (chicks > 0 && chicks % 3 == 0) {
            if (5 * roosters + 3 * hens + chicks / 3 == 100) {
                System.out.println("公雞:" + roosters + " 母雞:" + hens + " 小雞:" + chicks);
            }
        }
    }
}

例題

10到50之間的素?cái)?shù)

int start = 10;
int end = 50;
?
for (int number = start; number <= end; number++) {
    boolean isPrime = true;
?
    for (int divisor = 2; divisor <= Math.sqrt(number); divisor++) {
        if (number % divisor == 0) {
            isPrime = false;
            break;
        }
    }
?
    if (isPrime && number > 1) {
        System.out.println(number);
    }
}

例題

生成兩個(gè)長度為10的整數(shù)數(shù)組,數(shù)組中的元素由0到9之間的隨機(jī)數(shù)填充。尋找數(shù)組r1中的某個(gè)元素a和數(shù)組r2中的某個(gè)元素b,使得它們的和等于10,并將這樣的對打印出來。

Random rd = new Random();
int[] r1 = new int[10];
int[] r2 = new int[10];
for (int i = 0; i < 10; i++) {
    r1[i] = rd.nextInt(10);
    r2[i] = rd.nextInt(10);
}
System.out.println(Arrays.toString(r1));
System.out.println(Arrays.toString(r2));
for (int a : r1) {
    for (int b : r2) {
        if (a + b == 10) {
            System.out.println(a + "----" + b);
        }
    }
}

總結(jié) 

到此這篇關(guān)于Java循環(huán)嵌套詳解及經(jīng)典列題的文章就介紹到這了,更多相關(guān)Java循環(huán)嵌套內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 使用maven war包打包去除jar包瘦身

    使用maven war包打包去除jar包瘦身

    這篇文章主要介紹了使用maven war包打包去除jar包瘦身操作,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-07-07
  • Java設(shè)計(jì)模式之裝飾者模式詳解和代碼實(shí)例

    Java設(shè)計(jì)模式之裝飾者模式詳解和代碼實(shí)例

    這篇文章主要介紹了Java設(shè)計(jì)模式之裝飾者模式詳解和代碼實(shí)例,Decorator模式(別名Wrapper):動(dòng)態(tài)將職責(zé)附加到對象上,若要擴(kuò)展功能,裝飾者提供了比繼承更具彈性的代替方案,需要的朋友可以參考下
    2014-09-09
  • spring 集成 mybatis的實(shí)例詳解

    spring 集成 mybatis的實(shí)例詳解

    這篇文章主要介紹了spring 集成 mybatis的實(shí)例詳解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • Java使用TCP套接字實(shí)現(xiàn)多人聊天功能詳解

    Java使用TCP套接字實(shí)現(xiàn)多人聊天功能詳解

    這篇文章主要介紹了Java使用TCP套接字實(shí)現(xiàn)多人聊天功能,結(jié)合實(shí)例形式詳細(xì)分析了java使用socket通信實(shí)現(xiàn)tcp協(xié)議下的聊天功能客戶端與服務(wù)器端相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2019-10-10
  • Java中的PrintWriter 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    Java中的PrintWriter 介紹_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理

    PrintWriter 是字符類型的打印輸出流,它繼承于Writer。接下來通過本文給大家介紹java中的 PrintWriter 相關(guān)知識,感興趣的朋友一起學(xué)習(xí)吧
    2017-05-05
  • Java替換視頻背景音樂的實(shí)現(xiàn)示例

    Java替換視頻背景音樂的實(shí)現(xiàn)示例

    FFmpeg 是一個(gè)強(qiáng)大的開源多媒體處理工具,被廣泛應(yīng)用于音視頻的錄制、轉(zhuǎn)碼、編輯等方面,本文主要介紹了Java替換視頻背景音樂,具有一定的參考價(jià)值,感興趣的可以了解一下
    2024-03-03
  • Java 實(shí)戰(zhàn)范例之線上婚紗攝影預(yù)定系統(tǒng)的實(shí)現(xiàn)

    Java 實(shí)戰(zhàn)范例之線上婚紗攝影預(yù)定系統(tǒng)的實(shí)現(xiàn)

    讀萬卷書不如行萬里路,只學(xué)書上的理論是遠(yuǎn)遠(yuǎn)不夠的,只有在實(shí)戰(zhàn)中才能獲得能力的提升,本篇文章手把手帶你用java+javaweb+SSM+springboot+mysql實(shí)現(xiàn)一個(gè)線上婚紗攝影預(yù)定系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-11-11
  • 詳解CopyOnWriteArrayList是如何保證線程安全

    詳解CopyOnWriteArrayList是如何保證線程安全

    這篇文章主要為大家介紹了CopyOnWriteArrayList是如何保證線程安全講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • SpringBoot如何實(shí)現(xiàn)讀取.config文件

    SpringBoot如何實(shí)現(xiàn)讀取.config文件

    文章介紹如何在Java中讀取XML文件:通過創(chuàng)建XML數(shù)據(jù)源、定義POJO類(含父類Menudata和子類Menudatas)、編寫解析工具、實(shí)現(xiàn)Service層及Controller調(diào)用,最終使用Layui框架展示數(shù)據(jù),強(qiáng)調(diào)文件后綴轉(zhuǎn)換及層級結(jié)構(gòu)處理
    2025-08-08
  • SpringMVC超詳細(xì)介紹自定義攔截器

    SpringMVC超詳細(xì)介紹自定義攔截器

    Spring?MVC?的攔截器(Interceptor)與?Java?Servlet?的過濾器(Filter)類似,它主要用于攔截用戶的請求并做相應(yīng)的處理,通常應(yīng)用在權(quán)限驗(yàn)證、記錄請求信息的日志、判斷用戶是否登錄等功能上。本文將代碼演示和文字描述詳解攔截器的原理與使用
    2022-06-06

最新評論

娱乐| 广丰县| 天镇县| 长宁区| 永济市| 朝阳市| 罗江县| 哈密市| 四会市| 文登市| 天气| 贵德县| 辽宁省| 亚东县| 卢氏县| 翁牛特旗| 民勤县| 南宁市| 莒南县| 镇远县| 太湖县| 贵南县| 邢台市| 开平市| 札达县| 万山特区| 大庆市| 拉萨市| 砚山县| 双鸭山市| 饶平县| 乃东县| 尼玛县| 沙雅县| 天峨县| 榕江县| 濉溪县| 静乐县| 临漳县| 镇坪县| 兴宁市|