Java的循環(huán)結(jié)構(gòu)

循環(huán)結(jié)構(gòu)

Java中的循環(huán)結(jié)構(gòu)有三種:while循環(huán)結(jié)構(gòu)? do while循環(huán)結(jié)構(gòu)? for 循環(huán)結(jié)構(gòu)

while循環(huán)結(jié)構(gòu):

語法格式:

```java

while(循環(huán)條件){

? ? 循環(huán)操作

}

```

while循環(huán)結(jié)構(gòu)如果第一次判斷循環(huán)條件就不滿足,則會直接跳出循環(huán),循環(huán)操作一遍都不會執(zhí)行

##### 這是while循環(huán)結(jié)構(gòu)的一個特點(diǎn):先判斷 后執(zhí)行。

while循環(huán)的執(zhí)行順序:

1:聲明并創(chuàng)建循環(huán)變量

2:判斷循環(huán)條件是否滿足,如果滿足則執(zhí)行循環(huán)操作,否則退出循環(huán)

3:執(zhí)行玩循環(huán)操作后再次判斷循環(huán)條件 決定 繼續(xù) 執(zhí)行循環(huán) 還是 退出循環(huán)

### while案例

```java

import java.util.Scanner;

public class Demo01 {

? ? public static void main(String[] args) {

? ? ? ? //檢查學(xué)習(xí)情況,直到合格為止

? ? ? ? System.out.println("你的學(xué)習(xí)合格了嗎?(y/n)");

? ? ? ? Scanner scanner=new Scanner(System.in);

? ? ? ? String hege = scanner.next();

? ? ? ? while( !"y".equals(hege)){? ? ? ? ?

? ? ? ? ? ? //? equals相當(dāng)于 ==? 判斷字符是不是相等

? ? ? ? ? ? System.out.println("上午學(xué)理論");

? ? ? ? ? ? System.out.println("下午學(xué)編程");

? ? ? ? ? ? System.out.println("經(jīng)過復(fù)習(xí),這次合格了嗎?");

? ? ? ? ? ? hege = scanner.next();

? ? ? ? }

? ? ? ? System.out.println("恭喜你學(xué)習(xí)完成,去玩耍吧");

? ? }

}

```

while循環(huán)結(jié)構(gòu)解決問題的步驟:

1:分析循環(huán)條件和循環(huán)操作

2:套用while語法寫出代碼

3:檢查循環(huán)能否退出

do while 循環(huán)結(jié)構(gòu):

對于 while 語句而言,如果不滿足條件,則不能進(jìn)入循環(huán)。但有時候我們需要即使不滿足條件,也至少執(zhí)行一次。

do…while 循環(huán)和 while 循環(huán)相似,不同的是,do…while 循環(huán)至少會執(zhí)行一次

語法格式:

```java

do{

? ? 循環(huán)操作

} while (循環(huán)條件);

```

### do while 循環(huán)的執(zhí)行順序一般如下:

1:聲明并創(chuàng)建循環(huán)變量

2:判斷循環(huán)條件是否滿足,如果滿足,則執(zhí)行循環(huán)操作,否則退出循環(huán)

3:執(zhí)行玩循環(huán)操作后再次判斷循環(huán)條件 決定 繼續(xù) 執(zhí)行循環(huán) 還是 退出循環(huán)

### do while循環(huán)案例:

```java

import java.util.Scanner;

public class Demo03 {

? ? public static void main(String[] args) {

? ? ? ? String hege = null;? //定義一個全局的變量,恭供下文使用

? ? ? ? Scanner scanner = new Scanner(System.in);?

? ? ? ? //把掃描器定義在循環(huán)的外面,能夠提高程序的性能,占用更少的電腦系統(tǒng)資源

? ? ? ? do {

? ? ? ? ? ? System.out.println("上機(jī)編寫程序");

? ? ? ? ? ? System.out.println("合格了嗎?");

? ? ? ? ? ? hege = scanner.next();

? ? ? ? ? ? //限制性,在判斷

? ? ? ? } while (!"y".equals(hege));

? ? ? ? System.out.println("恭喜你合格了");

? ? }

}

```

使用do while循環(huán)解決問題的步驟如下:

1:分析循環(huán)條件和循環(huán)操作

2:套用while語法寫出代碼

3:檢查循環(huán)能否退出

?for循環(huán)

?語法格式:

```Java

for(表達(dá)式1;表達(dá)式2;表達(dá)式3){

//循環(huán)體

}

```

for循環(huán)中有三個表達(dá)式

| 表達(dá)式1: | 賦值語句 | 循環(huán)結(jié)構(gòu)的初試部分,為循環(huán)變量賦初值? ? ? ? ? ? ? ? ? ? ? ? | 舉例? int? i = 0? |

| --------- | -------- | ------------------------------------------------------------ | ----------------- |

| 表達(dá)式2: | 條件語句 | 循環(huán)結(jié)構(gòu)的循環(huán)部分? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | 舉例:? i <? 100 |

| 表達(dá)式3:? | 賦值語句 | ,通常使用++或--運(yùn)算符? ? ? ? ? ? ? 循環(huán)結(jié)構(gòu)的迭代部分,通常用來修改循環(huán)變量的值 | 舉例? ? i++? ? ? |

?for循環(huán)結(jié)構(gòu)執(zhí)行的順序

1:執(zhí)行初始部分( int i= 0;)

2:進(jìn)行循環(huán)條件判斷(i<100)

3:根據(jù)循環(huán)條件判斷結(jié)果

4:執(zhí)行迭代部分,改變循環(huán)變量值(i++)

5:依次重復(fù)步驟(2) ~步驟(4)知道退出for循環(huán)結(jié)構(gòu)

### for 循環(huán)案例

```java

package edc.xcdq;

import java.util.Scanner;

public class Main {

? ? public static void main(String[] args) {

? ? ? Scanner scanner =? new Scanner(System.in);

? ? ? int sum = 0 ;

? ? for( int i=1;i<5;i++){

? ? ? ? System.out.println("輸入第"+ i +"門課的成績");

? ? ? ? int fen = scanner.nextInt();

? ? ? ? sum += fen;? ? //sum = sum+fen

? ? }

? ? int pingjunfen = sum / 5;

? ? ? ? System.out.println("平均分為:"+ pingjunfen);

? ? }

}

```

?for循環(huán)解決問題的步驟:

1:明確循環(huán)條件和循環(huán)操作

2:套用while語法寫出代碼

3:檢查循環(huán)能否退出

?break語句的使用:

break 語句不僅可以用在while 和do while 循環(huán)結(jié)構(gòu)中 也可以用在for循環(huán)結(jié)構(gòu)中

break 語句案例:

```java

import java.util.Scanner;

public class break語句的練習(xí) {

? ? public static void main(String[] args) {

? ? ? ? int score;

? ? ? ? int sum =0;

? ? ? ? int avg;

? ? ? ? boolean isNegative = false;

? ? ? ? Scanner scanner = new Scanner(System.in);

? ? ? ? System.out.println("輸入學(xué)生姓名");

? ? ? ? String name = scanner.next();

? ? ? ? int i=0;

? ? ? ? while(i<5){

? ? ? ? ? ? System.out.println("請輸入第" + (i+1) + "門課的成績 :");

? ? ? ? ? ? score = scanner.nextInt();

? ? ? ? ? ? if(score < 0){

? ? ? ? ? ? ? ? isNegative = true;

? ? ? ? ? ? ? ? break;

? ? ? ? ? ? }

? ? ? ? ? ? sum = sum + score;

? ? ? ? ? ? i++;

? ? ? ? }

? ? ? ? if(isNegative){

? ? ? ? ? ? System.out.println("抱歉,分?jǐn)?shù)錄入錯誤,請重新進(jìn)行錄入!");

? ? ? ? }else {

? ? ? ? ? ? avg = sum / 5;

? ? ? ? ? ? System.out.println(name + "的平均分是:"+avg);

? ? ? ? }

? ? }

}

```

continue語句的使用:

#### continue語句用于跳出本次循環(huán),進(jìn)入下一次循環(huán)的語句

#### continue語句的案例

```java

import java.util.Scanner;

public class Continue的練習(xí) {

? ? ? ? public static void main(String[] args) {

? ? ? ? ? ? int score;

? ? ? ? ? ? int num =0;

? ? ? ? ? ? int avg;

? ? ? ? ? ? Scanner scanner = new Scanner(System.in);

? ? ? ? ? ? System.out.println("輸入班級總?cè)藬?shù)");

? ? ? ? ? ? int total = scanner.nextInt();

? ? ? ? ? ? int i=0;

? ? ? ? ? ? while(i < total){

? ? ? ? ? ? ? ? i++;

? ? ? ? ? ? ? ? System.out.println("請輸入第" + i + "位學(xué)生的成績");

? ? ? ? ? ? ? ? score = scanner.nextInt();

? ? ? ? ? ? ? ? if(score < 80){

? ? ? ? ? ? ? ? ? ? continue;

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ? ? num++;

? ? ? ? ? ? }

? ? ? ? ? ? ? ? System.out.println("80分以上的學(xué)生人數(shù)是:"+num);

? ? ? ? ? ? double rate = (double) num / total *100;

? ? ? ? ? ? System.out.println("80分以上的學(xué)生所占的比例為"+ rate + "%");

? ? ? ? ? ? }

? ? ? ? }


```

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容