循環(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):
語(yǔ)法格式:
while(循環(huán)條件){
循環(huán)操作
}
while循環(huán)結(jié)構(gòu)如果第一次判斷循環(huán)條件就不滿足巍耗,則會(huì)直接跳出循環(huán),循環(huán)操作一遍都不會(huì)執(zhí)行
這是while循環(huán)結(jié)構(gòu)的一個(gè)特點(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案例
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)過(guò)復(fù)習(xí)炫彩,這次合格了嗎羊精?");
hege = scanner.next();
}
System.out.println("恭喜你學(xué)習(xí)完成斯够,去玩耍吧");
}
}
while循環(huán)結(jié)構(gòu)解決問(wèn)題的步驟:
1:分析循環(huán)條件和循環(huán)操作
2:套用while語(yǔ)法寫出代碼
3:檢查循環(huán)能否退出
do while 循環(huán)結(jié)構(gòu):
對(duì)于 while 語(yǔ)句而言,如果不滿足條件喧锦,則不能進(jìn)入循環(huán)读规。但有時(shí)候我們需要即使不滿足條件,也至少執(zhí)行一次燃少。
do…while 循環(huán)和 while 循環(huán)相似束亏,不同的是,do…while 循環(huán)至少會(huì)執(zhí)行一次
語(yǔ)法格式:
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)案例:
import java.util.Scanner;
public class Demo03 {
public static void main(String[] args) {
String hege = null; //定義一個(gè)全局的變量怔昨,恭供下文使用
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)解決問(wèn)題的步驟如下:
1:分析循環(huán)條件和循環(huán)操作
2:套用while語(yǔ)法寫出代碼
3:檢查循環(huán)能否退出
for循環(huán)
語(yǔ)法格式:
for(表達(dá)式1;表達(dá)式2;表達(dá)式3){
//循環(huán)體
}
for循環(huán)中有三個(gè)表達(dá)式
表達(dá)式1: | 賦值語(yǔ)句 | 循環(huán)結(jié)構(gòu)的初試部分,為循環(huán)變量賦初值 | 舉例 int i = 0 |
---|---|---|---|
表達(dá)式2: | 條件語(yǔ)句 | 循環(huán)結(jié)構(gòu)的循環(huán)部分 | 舉例: i < 100 |
表達(dá)式3: | 賦值語(yǔ)句 | 通常使用++或--運(yùn)算符 循環(huán)結(jié)構(gòu)的迭代部分矮烹,通常用來(lái)修改循環(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)案例
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 +"門課的成績(jī)");
int fen = scanner.nextInt();
sum += fen; //sum = sum+fen
}
int pingjunfen = sum / 5;
System.out.println("平均分為:"+ pingjunfen);
}
}
for循環(huán)解決問(wèn)題的步驟:
1:明確循環(huán)條件和循環(huán)操作
2:套用while語(yǔ)法寫出代碼
3:檢查循環(huán)能否退出
break語(yǔ)句的使用:
break用于中斷循環(huán)
break 語(yǔ)句不僅可以用在while 和do while 循環(huán)結(jié)構(gòu)中 也可以用在for循環(huán)結(jié)構(gòu)中
break 語(yǔ)句案例:
import java.util.Scanner;
public class break語(yǔ)句的練習(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("請(qǐng)輸入第" + (i+1) + "門課的成績(jī) :");
score = scanner.nextInt();
if(score < 0){
isNegative = true;
break;
}
sum = sum + score;
i++;
}
if(isNegative){
System.out.println("抱歉奉狈,分?jǐn)?shù)錄入錯(cuò)誤卤唉,請(qǐng)重新進(jìn)行錄入!");
}else {
avg = sum / 5;
System.out.println(name + "的平均分是:"+avg);
}
}
}
continue語(yǔ)句的使用:
continue語(yǔ)句用于跳出本次循環(huán)仁期,進(jìn)入下一次循環(huán)的語(yǔ)句
continue語(yǔ)句的案例
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("輸入班級(jí)總?cè)藬?shù)");
int total = scanner.nextInt();
int i=0;
while(i < total){
i++;
System.out.println("請(qǐng)輸入第" + i + "位學(xué)生的成績(jī)");
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 + "%");
}
}