Java While循環(huán) do-while循環(huán)用法
循環(huán)語句就是讓計(jì)算機(jī)根據(jù)條件做循環(huán)計(jì)算,在條件滿足時(shí)繼續(xù)循環(huán),條件不滿足時(shí)退出循環(huán)。
Java提供了while條件循環(huán)。它的基本用法是:
while (條件表達(dá)式) {
循環(huán)語句
}
// 繼續(xù)執(zhí)行后續(xù)代碼
while循環(huán)在每次循環(huán)開始前,先會(huì)判斷條件是否成立。如果計(jì)算結(jié)果為true,就把循環(huán)體內(nèi)的語句執(zhí)行一遍,如果計(jì)算結(jié)果為false,那就直接跳到while循環(huán)的末尾,繼續(xù)往下執(zhí)行。
do while循環(huán)的基本結(jié)構(gòu)
do{
//循環(huán)體
}while(條件);
與while不同的是,do while先不進(jìn)行判斷,直接先將循環(huán)體中的代碼執(zhí)行一遍,然后根據(jù)while中的條件的返回值判斷,如果符合條件,則再一次運(yùn)行循環(huán)體,如果不符合,則執(zhí)行do while外面的代碼
注意:不論是do while還是while循環(huán),他們的本質(zhì)都是相同的,符合條件則執(zhí)行循環(huán)體,不符合則執(zhí)行其他代碼,但是,while后面的小括號(hào)中的是true的時(shí)候,才會(huì)循環(huán)。
舉個(gè)例子,用while循環(huán)來計(jì)算1到100的累加。
public class Main {
public static void main(String[] args) {
int sum = 0; // 累加的和,初始化為0
int n = 1;
while (n <= 100) { // 循環(huán)條件是n <= 100
sum = sum + n; // 把n累加到sum中
n ++; // n自身加1
}
System.out.println(sum); // 5050
}
}
執(zhí)行結(jié)果:
5050
值得注意的是while循環(huán)是先判斷循環(huán)條件,再循環(huán),因此,有可能一次循環(huán)都不做。如果循環(huán)條件永遠(yuǎn)滿足,那這個(gè)循環(huán)就變成了死循環(huán)。死循環(huán)將導(dǎo)致100%的CPU占用,用戶會(huì)感覺電腦運(yùn)行緩慢,所以要避免編寫死循環(huán)代碼。
如果循環(huán)條件的邏輯寫得有問題,也會(huì)造成意料之外的結(jié)果。
下面舉個(gè)例子:
public class Main {
public static void main(String[] args) {
int sum = 0;
int n = 1;
while (n > 0) {
sum = sum + n;
n ++;
}
System.out.println(n); // -2147483648
System.out.println(sum);
}
}
執(zhí)行結(jié)果:
-2147483648
-1073741824
表面上看,上面的while循環(huán)是一個(gè)死循環(huán),但是,Java的int類型有最大值,達(dá)到最大值后,再加1會(huì)變成負(fù)數(shù),結(jié)果,就會(huì)退出while循環(huán)。
小提示
while循環(huán)先判斷循環(huán)條件是否滿足,再執(zhí)行循環(huán)語句;
while循環(huán)可能一次都不執(zhí)行;
編寫循環(huán)時(shí)要注意循環(huán)條件,并避免程序進(jìn)入死循環(huán)。
do-while循環(huán)
前面一篇介紹了while循環(huán)語句,這里介紹do-while循環(huán)。do-while和while唯一的區(qū)別就是,do-while是先做循環(huán),然后去判斷,而while循環(huán)是先判斷,再去循環(huán)。說得有點(diǎn)繞口,在同一個(gè)例子去實(shí)現(xiàn)用while和do-while實(shí)現(xiàn)從1到100的求和。
相關(guān)代碼如下:
package lessons;
public class MyClass {
public static void main(String[] args) {
int a= 1;
int sum = 0;
while(a <= 100){
sum += a;
a++;
}
System.out.println(sum);
int x = 1;
int sum1 = 0;
do{
sum1 += x;
x++;
}while(x <= 100);
System.out.println(sum1);
}
}
運(yùn)行結(jié)果,發(fā)現(xiàn)兩個(gè)循環(huán)結(jié)果都是5050.自己好好去理解下先循環(huán)再判斷,這是do-while循環(huán)的基本語法。
- 詳解Java中的do...while循環(huán)語句的使用方法
- Java中for、while、do while三種循環(huán)語句的區(qū)別介紹
- 詳解Java中while和do-while循環(huán)、break的使用
- Java之while與do-while循環(huán)的用法詳解
- Java流程控制之循環(huán)結(jié)構(gòu)while、do...while
- Java零基礎(chǔ)教程之do-while循環(huán)語句實(shí)例
- Java中的do while循環(huán)控制語句基本使用
- Java中do-while循環(huán)的使用方法及注意事項(xiàng)詳解
相關(guān)文章
基于SpringBoot實(shí)現(xiàn)HTTP請(qǐng)求簽名驗(yàn)證機(jī)制
在分布式系統(tǒng)交互中,API接口的安全性至關(guān)重要,本文將深入解析基于Spring Boot實(shí)現(xiàn)的HTTP請(qǐng)求簽名驗(yàn)證機(jī)制,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-04-04
java處理轉(zhuǎn)義字符↑ → ↓ 保存后的展示還原操作
這篇文章主要介紹了java處理轉(zhuǎn)義字符↑ → ↓ 保存后的展示還原操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2021-06-06
詳解如何配置springboot跳轉(zhuǎn)html頁面
這篇文章主要介紹了詳解如何配置springboot跳轉(zhuǎn)html頁面,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問題及解決
這篇文章主要介紹了druid執(zhí)行SQL出現(xiàn)錯(cuò)誤但不影響返回結(jié)果的問題及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12
詳解SpringMVC重定向傳參數(shù)的實(shí)現(xiàn)
本篇文章主要介紹了詳解SpringMVC重定向傳參數(shù)的實(shí)現(xiàn),我們可以使用重定向的方式,改變?yōu)g覽器的地址欄,防止表單因?yàn)樗⑿轮貜?fù)提交。有興趣的可以了解一下。2017-01-01
java實(shí)現(xiàn)多線程文件的斷點(diǎn)續(xù)傳
這篇文章主要為大家詳細(xì)介紹了java實(shí)現(xiàn)多線程文件的斷點(diǎn)續(xù)傳,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-06-06
Java實(shí)現(xiàn)鼠標(biāo)拖拽移動(dòng)界面組件
在Java中,F(xiàn)rame或者JFrame自身已經(jīng)實(shí)現(xiàn)了鼠標(biāo)拖拽標(biāo)題欄移動(dòng)窗口的功能。但是Jframe的樣式實(shí)在無法令人滿意,那你又該怎么實(shí)現(xiàn)鼠標(biāo)拖拽移動(dòng)窗口的目的呢?今天我們來探討下2014-09-09

