欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java之while與do-while循環(huán)的用法詳解

 更新時(shí)間:2023年05月18日 09:41:25   作者:一一哥Sun  
在上一篇文章中,給大家講解了循環(huán)的概念,并重點(diǎn)給大家講解了for循環(huán)的使用。但在Java中,除了for循環(huán)之外,還有while、do-while、foreach等循環(huán)形式。這篇文章給大家講解while循環(huán)的使用

一. while循環(huán)

1. 基本語(yǔ)法

while循環(huán)的基本語(yǔ)法如下所示:

while(循環(huán)條件){ 
    //循環(huán)體 
}

while循環(huán)屬于是一種 ”當(dāng)型“的循環(huán)結(jié)構(gòu),當(dāng)循環(huán)條件為true,循環(huán)體就會(huì)執(zhí)行,不滿足條件,循環(huán)體一次也不會(huì)執(zhí)行。所以在while循環(huán)中,當(dāng)執(zhí)行到一定的程度后,循環(huán)條件要變成false,否則就會(huì)變成”死循環(huán)“。死循環(huán)會(huì)導(dǎo)致CPU被100%占用,用戶會(huì)感覺(jué)電腦運(yùn)行緩慢,所以我們要避免編寫(xiě)死循環(huán)代碼。另外如果循環(huán)條件的邏輯寫(xiě)得有問(wèn)題,也可能會(huì)造成意料之外的結(jié)果。

大家還要注意,在while循環(huán)中,也是可以進(jìn)行嵌套其他循環(huán)的!

2. 執(zhí)行順序

根據(jù)while循環(huán)的基本語(yǔ)法,給大家梳理一下它的執(zhí)行順序:

如果while循環(huán)里的條件為true,則執(zhí)行循環(huán)體;

循環(huán)體執(zhí)行完畢后,會(huì)再次判斷循環(huán)條件......;

直到循環(huán)條件為false,就結(jié)束循環(huán)。

3. 代碼案例

接下來(lái)我們就通過(guò)幾個(gè)案例來(lái)學(xué)習(xí)while循環(huán)的使用。

3.1 案例一

需求:用while循環(huán)打印100遍“跟壹壹哥學(xué)Java”

/**
 * @author
 */
public class Demo05 {
    public static void main(String[] args) {
	// while循環(huán)
	//打印100遍“跟壹壹哥學(xué)Java”
	int i = 0;
	while (i < 100) {
            System.out.println("跟壹壹哥學(xué)Java"+i);
            //注意要更改i的值,否則條件就用于為真,這就成了死循環(huán)了
            i++;
	}
    }
}

3.2 案例二

需求:用while循環(huán)計(jì)算1-100的累加和

/**
 * @author
 */
public class Demo05 {
    public static void main(String[] args) {
	// while循環(huán)
	//計(jì)算1~100的和
	int j = 1;
	int sum = 0;
	while(j < 101){            
            sum = sum + j;
            j++;
	}
	System.out.println(sum);
    }
}

3.3 擴(kuò)展案例

需求:計(jì)算一個(gè)數(shù)是幾位數(shù)?

實(shí)現(xiàn)思路:如果我們要想實(shí)現(xiàn)這個(gè)需求,可以將該數(shù)循環(huán)除以10,并用一個(gè)數(shù)字記錄一共運(yùn)算了幾次。

/**
 * @author
 */
public class Demo06 {
    public static void main(String[] args) {
	// while循環(huán)
	// 計(jì)算一個(gè)數(shù)是幾位數(shù)? 實(shí)現(xiàn)思路:將該數(shù)循環(huán)除以10,記錄運(yùn)算了幾次
	int num = 12345;
	int temp = num;
	if (num == 0) {
            System.out.println(num + "是1位數(shù)");
	} else {
            // 定義一個(gè)變量,用于保存循環(huán)的次數(shù)
            int count = 0;
            while (num != 0) {
		// 將這個(gè)數(shù)循環(huán)除以10
		num = num / 10;
		// 每次循環(huán)次數(shù)+1
		count++;
            }
            System.out.println(temp + "是" + count + "位數(shù)");
	}
    }
}

二. do-while循環(huán)

對(duì)while循環(huán)而言,如果不滿足條件,就不能進(jìn)入循環(huán)。但有時(shí)我們需要即使不滿足條件,也要至少執(zhí)行一次,這時(shí)就可以考慮使用do-while循環(huán)了。do…while循環(huán)和while循環(huán)功能相似,不同的是,do…while循環(huán)至少會(huì)執(zhí)行一次。

1. 基本語(yǔ)法

do-while循環(huán)的基本語(yǔ)法如下:

do{ 
   //循環(huán)體 
}while(循環(huán)條件);

do-while循環(huán)屬于是一種 ”直到型“的循環(huán)結(jié)構(gòu)。因?yàn)檠h(huán)條件是在循環(huán)體的后面,所以循環(huán)體在判斷循環(huán)條件之前已經(jīng)執(zhí)行一次了。如果循環(huán)條件的值為true,則循環(huán)體會(huì)一直執(zhí)行,直到循環(huán)條件的值為false,就結(jié)束循環(huán)。

大家注意:在do-while循環(huán)中,也是可以進(jìn)行嵌套其他循環(huán)的!

2. 執(zhí)行順序

根據(jù)do-while循環(huán)的基本語(yǔ)法,給大家梳理一下它的執(zhí)行順序:

先執(zhí)行一次循環(huán)體;

如果while循環(huán)里的條件為true,則繼續(xù)執(zhí)行循環(huán)體;

當(dāng)循環(huán)體執(zhí)行完畢后,會(huì)再次判斷循環(huán)條件......;

直到循環(huán)條件為false,就結(jié)束循環(huán)。

3. 代碼案例

3.1 案例一

需求:用do-while循環(huán)打印100遍"跟一一哥學(xué)編程"。

/**
 * @author
 */
public class Demo06 {
    public static void main(String[] args) {
	// do-while循環(huán)
	// 案例:打印100遍"跟一一哥學(xué)編程"
	int i = 1;
	do {
            //循環(huán)體至少會(huì)執(zhí)行一次
            System.out.println("跟一一哥學(xué)編程"+i);
            //更改i變量的值
            i++;
	} while (i <= 100);
    }
}

3.2 案例二

需求:學(xué)生根據(jù)老師的評(píng)語(yǔ),決定是否繼續(xù)敲代碼,直到測(cè)評(píng)為ok,就結(jié)束。

/**
 * @author
 */
public class Demo06 {
    public static void main(String[] args) {
	// do-while循環(huán)
	//案例:學(xué)生根據(jù)老師的評(píng)語(yǔ),是否繼續(xù)敲代碼,直到測(cè)評(píng)結(jié)果為ok才結(jié)束。
	Scanner sc = new Scanner(System.in);
	String result;
	do{
            System.out.println("敲代碼ing...你看我的代碼怎么樣???");
            System.out.println("評(píng)價(jià):");   
            //獲取屏幕上輸入的文本內(nèi)容
            result = sc.next();            
	}while(!result.equals("ok"));
    }
}

三. 結(jié)語(yǔ)

至此,就把while和do-while兩種循環(huán)的使用給大家講解完畢了,現(xiàn)在你學(xué)會(huì)了嗎?那么兩者之間有什么區(qū)別呢?

1. while與do-while的區(qū)別

這里把while與do-while循環(huán)的區(qū)別,給大家簡(jiǎn)單總結(jié)一下:

  • 語(yǔ)法格式的區(qū)別:

  • 執(zhí)行次序不同;
  • 當(dāng)初始循環(huán)條件不滿足時(shí),while循環(huán)一次都不會(huì)執(zhí)行;do-while循環(huán)至少會(huì)執(zhí)行一次。

2. 三種循環(huán)的對(duì)比

我們現(xiàn)在已經(jīng)把for、while、do-while循環(huán)都學(xué)完了,它們?nèi)咧g又有哪些區(qū)別呢?

2.1 從執(zhí)行順序來(lái)看

  • for、while:先判斷,后執(zhí)行;
  • do-while:先執(zhí)行,后判斷;

2.2 從適用場(chǎng)景來(lái)看

  • 當(dāng)循環(huán)次數(shù)確定時(shí),一般使用for循環(huán);
  • 循環(huán)次數(shù)不確定時(shí),一般使用while或do-while循環(huán)。

以上就是Java之while與do-while循環(huán)的用法詳解的詳細(xì)內(nèi)容,更多關(guān)于Java while與do-while循環(huán)的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • JAVA中數(shù)組從小到大排序的2種方法實(shí)例

    JAVA中數(shù)組從小到大排序的2種方法實(shí)例

    JAVA中在運(yùn)用數(shù)組進(jìn)行排序功能時(shí)一般有多種解決方案,下面這篇文章主要給大家介紹了關(guān)于JAVA中數(shù)組從小到大排序的2種方法,文中都給出了詳細(xì)的實(shí)例代碼,需要的朋友可以參考下
    2023-03-03
  • idea中如何去掉不想commit的文件

    idea中如何去掉不想commit的文件

    這篇文章主要介紹了idea中如何去掉不想commit的文件,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • 基于SpringBoot上傳任意文件功能的實(shí)現(xiàn)

    基于SpringBoot上傳任意文件功能的實(shí)現(xiàn)

    下面小編就為大家?guī)?lái)一篇基于SpringBoot上傳任意文件功能的實(shí)現(xiàn)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-08-08
  • java多線程Thread-per-Message模式詳解

    java多線程Thread-per-Message模式詳解

    本篇文章給大家分享java多線程Thread-per-Message模式的相關(guān)知識(shí)點(diǎn),對(duì)此有興趣的朋友參考學(xué)習(xí)下。
    2018-05-05
  • 使用mybatis log plugin插件展示出數(shù)據(jù)庫(kù)查詢語(yǔ)句方式

    使用mybatis log plugin插件展示出數(shù)據(jù)庫(kù)查詢語(yǔ)句方式

    本文介紹了如何安裝和配置MyBatis日志插件,包括集成log4j、配置log4j.xml文件和在application.properties中添加數(shù)據(jù)庫(kù)打印配置,通過(guò)這些步驟,可以在調(diào)試時(shí)查看預(yù)編譯的數(shù)據(jù)庫(kù)語(yǔ)句和實(shí)際查詢語(yǔ)句
    2024-11-11
  • 簡(jiǎn)單快速對(duì)@RequestParam聲明的參數(shù)作校驗(yàn)操作

    簡(jiǎn)單快速對(duì)@RequestParam聲明的參數(shù)作校驗(yàn)操作

    這篇文章主要介紹了簡(jiǎn)單快速對(duì)@RequestParam聲明的參數(shù)作校驗(yàn)操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • SpringBoot實(shí)現(xiàn)服務(wù)接入nacos注冊(cè)中心流程詳解

    SpringBoot實(shí)現(xiàn)服務(wù)接入nacos注冊(cè)中心流程詳解

    這篇文章主要介紹了SpringBoot實(shí)現(xiàn)服務(wù)接入nacos注冊(cè)中心流程,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧
    2023-01-01
  • java 排序算法之快速排序

    java 排序算法之快速排序

    這篇文章主要介紹了java 排序算法之快速排序,文中通過(guò)圖片和代碼講解相關(guān)知識(shí)非常詳細(xì),大家如果有需要的話可以參考一下這篇文章
    2021-09-09
  • MyEclipse如何將項(xiàng)目的開(kāi)發(fā)環(huán)境與服務(wù)器的JDK 版本保持一致

    MyEclipse如何將項(xiàng)目的開(kāi)發(fā)環(huán)境與服務(wù)器的JDK 版本保持一致

    我們使用MyEclipse開(kāi)發(fā)Java項(xiàng)目開(kāi)發(fā)中,偶爾會(huì)遇到因項(xiàng)目開(kāi)發(fā)環(huán)境不協(xié)調(diào),導(dǎo)致這樣那樣的問(wèn)題,在這里以把所有環(huán)境調(diào)整為JDK1.6 為例,給大家詳細(xì)介紹MyEclipse如何將項(xiàng)目的開(kāi)發(fā)環(huán)境與服務(wù)器的JDK 版本保持一致,需要的朋友參考下吧
    2024-04-04
  • Java實(shí)現(xiàn)三子棋小游戲

    Java實(shí)現(xiàn)三子棋小游戲

    這篇文章主要為大家詳細(xì)介紹了Java實(shí)現(xiàn)三子棋小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-07-07

最新評(píng)論