對(duì)while循環(huán)而言,如果不滿(mǎn)足條件,就不能進(jìn)入循環(huán)。但有時(shí)我們需要即使不滿(mǎn)足條件,也要至少執(zhí)行一次,這時(shí)就可以考慮使用do-while循環(huán)了。do…while循環(huán)和while循環(huán)功能相似,不同的是,do…while循環(huán)至少會(huì)執(zhí)行一次。
1. do…while基本語(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)的!
1.2. 執(zhí)行順序
根據(jù)do-while循環(huán)的基本語(yǔ)法,壹哥給大家梳理一下它的執(zhí)行順序:
1.先執(zhí)行一次循環(huán)體;
2.如果while循環(huán)里的條件為true,則繼續(xù)執(zhí)行循環(huán)體;
3.當(dāng)循環(huán)體執(zhí)行完畢后,會(huì)再次判斷循環(huán)條件......;
4.直到循環(huán)條件為false,就結(jié)束循環(huán)。
1.3. 代碼案例
1.3.1 案例一
需求:用do-while循環(huán)打印100遍"跟一一哥學(xué)編程"。
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);
}
}
1.3.2 案例二
需求:學(xué)生根據(jù)老師的評(píng)語(yǔ),決定是否繼續(xù)敲代碼,直到測(cè)評(píng)為ok,就結(jié)束。
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"));
}
}
2. while循環(huán)
2.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í)行,不滿(mǎn)足條件,循環(huán)體一次也不會(huì)執(zhí)行。所以在while循環(huán)中,當(dāng)執(zhí)行到一定的程度后,循環(huán)條件要變成false,否則就會(huì)變成”死循環(huán)“。死循環(huán)會(huì)導(dǎo)致CPU被100%占用,用戶(hù)會(huì)感覺(jué)電腦運(yùn)行緩慢,所以我們要避免編寫(xiě)死循環(huán)代碼。另外如果循環(huán)條件的邏輯寫(xiě)得有問(wèn)題,也可能會(huì)造成意料之外的結(jié)果。
大家還要注意,在while循環(huán)中,也是可以進(jìn)行嵌套其他循環(huán)的!
2.2 執(zhí)行順序
根據(jù)while循環(huán)的基本語(yǔ)法,壹哥給大家梳理一下它的執(zhí)行順序:
1.如果while循環(huán)里的條件為true,則執(zhí)行循環(huán)體;
2.循環(huán)體執(zhí)行完畢后,會(huì)再次判斷循環(huán)條件......;
3.直到循環(huán)條件為false,就結(jié)束循環(huán)。
2.3. 代碼案例
接下來(lái)我們就通過(guò)幾個(gè)案例來(lái)學(xué)習(xí)while循環(huán)的使用。
2.3.1 案例一
需求:用while循環(huán)打印100遍“小白學(xué)Java”
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++;
}
}
}
2.3.2 案例二
需求:用while循環(huán)計(jì)算1-100的累加和
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);
}
}
2.3.3 案例三
需求:計(jì)算一個(gè)數(shù)是幾位數(shù)?
實(shí)現(xiàn)思路:如果我們要想實(shí)現(xiàn)這個(gè)需求,可以將該數(shù)循環(huán)除以10,并用一個(gè)數(shù)字記錄一共運(yùn)算了幾次。
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ù)");
}
}
}
3.while與do-while的區(qū)別
●語(yǔ)法格式的區(qū)別:
●執(zhí)行次序不同;
●當(dāng)初始循環(huán)條件不滿(mǎn)足時(shí),while循環(huán)一次都不會(huì)執(zhí)行;do-while循環(huán)至少會(huì)執(zhí)行一次。
●while 循環(huán)在每次循環(huán)開(kāi)始前首先判斷循環(huán)條件是否為真,如果為真則執(zhí)行循環(huán)體,否則跳出循環(huán)。這意味著,如果循環(huán)條件一開(kāi)始就為假,那么循環(huán)體將不會(huì)執(zhí)行。示例代碼如下:
while (condition) {
// 循環(huán)體
}
●do-while 循環(huán)則先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否為真。如果循環(huán)條件為真,則繼續(xù)執(zhí)行循環(huán)體,否則跳出循環(huán)。這意味著,即使循環(huán)條件一開(kāi)始就為假,循環(huán)體也至少會(huì)執(zhí)行一次。示例代碼如下:
do {
// 循環(huán)體
} while (condition);
●因此,while 循環(huán)適用于在執(zhí)行循環(huán)體之前需要進(jìn)行條件判斷的情況,而 do-while 循環(huán)適用于無(wú)論條件如何都必須至少執(zhí)行一次循環(huán)體的情況。
java中do…while循環(huán)語(yǔ)句用法詳解
對(duì)while循環(huán)而言,如果不滿(mǎn)足條件,就不能進(jìn)入循環(huán)。但有時(shí)我們需要即使不滿(mǎn)足條件,也要至少執(zhí)行一次,這時(shí)就可以考慮使用do-while循環(huán)了。do…while循環(huán)和while循環(huán)功能相似,不同的是,do…while循環(huán)至少會(huì)執(zhí)行一次。
1. do…while基本語(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)的!
1.2. 執(zhí)行順序
根據(jù)do-while循環(huán)的基本語(yǔ)法,壹哥給大家梳理一下它的執(zhí)行順序:
1.先執(zhí)行一次循環(huán)體;
2.如果while循環(huán)里的條件為true,則繼續(xù)執(zhí)行循環(huán)體;
3.當(dāng)循環(huán)體執(zhí)行完畢后,會(huì)再次判斷循環(huán)條件......;
4.直到循環(huán)條件為false,就結(jié)束循環(huán)。
1.3. 代碼案例
1.3.1 案例一
需求:用do-while循環(huán)打印100遍"跟一一哥學(xué)編程"。
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);
}
}
1.3.2 案例二
需求:學(xué)生根據(jù)老師的評(píng)語(yǔ),決定是否繼續(xù)敲代碼,直到測(cè)評(píng)為ok,就結(jié)束。
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"));
}
}
1. while循環(huán)
2.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í)行,不滿(mǎn)足條件,循環(huán)體一次也不會(huì)執(zhí)行。所以在while循環(huán)中,當(dāng)執(zhí)行到一定的程度后,循環(huán)條件要變成false,否則就會(huì)變成”死循環(huán)“。死循環(huán)會(huì)導(dǎo)致CPU被100%占用,用戶(hù)會(huì)感覺(jué)電腦運(yùn)行緩慢,所以我們要避免編寫(xiě)死循環(huán)代碼。另外如果循環(huán)條件的邏輯寫(xiě)得有問(wèn)題,也可能會(huì)造成意料之外的結(jié)果。
大家還要注意,在while循環(huán)中,也是可以進(jìn)行嵌套其他循環(huán)的!
2.2 執(zhí)行順序
根據(jù)while循環(huán)的基本語(yǔ)法,壹哥給大家梳理一下它的執(zhí)行順序:
1.如果while循環(huán)里的條件為true,則執(zhí)行循環(huán)體;
2.循環(huán)體執(zhí)行完畢后,會(huì)再次判斷循環(huán)條件......;
3.直到循環(huán)條件為false,就結(jié)束循環(huán)。
2.3. 代碼案例
接下來(lái)我們就通過(guò)幾個(gè)案例來(lái)學(xué)習(xí)while循環(huán)的使用。
2.3.1 案例一
需求:用while循環(huán)打印100遍“小白學(xué)Java”
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++;
}
}
}
2.3.2 案例二
需求:用while循環(huán)計(jì)算1-100的累加和
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);
}
}
2.3.3 案例三
需求:計(jì)算一個(gè)數(shù)是幾位數(shù)?
實(shí)現(xiàn)思路:如果我們要想實(shí)現(xiàn)這個(gè)需求,可以將該數(shù)循環(huán)除以10,并用一個(gè)數(shù)字記錄一共運(yùn)算了幾次。
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ù)");
}
}復(fù)制代碼
}
3.while與do-while的區(qū)別
●語(yǔ)法格式的區(qū)別:
●執(zhí)行次序不同;
●當(dāng)初始循環(huán)條件不滿(mǎn)足時(shí),while循環(huán)一次都不會(huì)執(zhí)行;do-while循環(huán)至少會(huì)執(zhí)行一次。
●while 循環(huán)在每次循環(huán)開(kāi)始前首先判斷循環(huán)條件是否為真,如果為真則執(zhí)行循環(huán)體,否則跳出循環(huán)。這意味著,如果循環(huán)條件一開(kāi)始就為假,那么循環(huán)體將不會(huì)執(zhí)行。示例代碼如下:
while (condition) {
// 循環(huán)體
}
●do-while 循環(huán)則先執(zhí)行一次循環(huán)體,然后再判斷循環(huán)條件是否為真。如果循環(huán)條件為真,則繼續(xù)執(zhí)行循環(huán)體,否則跳出循環(huán)。這意味著,即使循環(huán)條件一開(kāi)始就為假,循環(huán)體也至少會(huì)執(zhí)行一次。示例代碼如下:
do {
// 循環(huán)體
} while (condition);
●因此,while 循環(huán)適用于在執(zhí)行循環(huán)體之前需要進(jìn)行條件判斷的情況,而 do-while 循環(huán)適用于無(wú)論條件如何都必須至少執(zhí)行一次循環(huán)體的情況。