Java程序設計基礎筆記 • 【第5章 循環結構】

本章目錄

5.1 while循環結構

5.1.1 循環簡介

5.1.2 while循環

5.1.3 while循環的使用

5.1.4 while循環的注意事項

5.1.5 實踐練習

5.2 深入理解while循環

5.2.1 使用while 循環實現數字統計

5.2.2 使用while循環計算存款利率

5.2.3 使用while循環計算遊戲數據

5.2.4 實踐練習

5.3 do-while循環

5.3.1 do-while循環語法結構

5.3.2 do-while循環的使用

5.3.3 while循環與do-while循環區別

5.3.4 實踐練習

5.4 深入理解do-while循環

5.4.1 使用do-while循環模擬ATM機菜單項

5.4.2 使用do-while循環求各位數之和

5.4.3 實踐練習

 

總結:


5.1 while循環結構

5.1.1 循環簡介

(1)反覆執行某些代碼的程序處理過程稱爲循環

(2)循環結構存在以下兩個特點:

  • 循環不是無休止進行的,滿足一定條件時,循環纔會繼續,稱之爲“循環條件”。
  • 循環是反覆執行相同類型的一系列操作,稱爲“循環操作”或“循環體”。

循環

循環條件

循環操作

打印20份試卷

試卷數量小於20

打印一份試卷,已打印試卷數量加一

滾動的車輪

未到達目的地

車輪滾動一圈,離目的地更近

 

5.1.2 while循環

while循環是Java語言中比較常用的循環結構之一,先判斷循環條件,再執行循環操作語句

語法:

while(循環條件)
{
        循環操作;
}

while 是Java語言中的關鍵字。

循環條件通常是具有boolean類型值的關係表達式或邏輯表達式。

循環操作可以是一條簡單語句,也可以是由多條語句構成的複合語句,當僅存在一條語句時,括號可以省略。

在while 循環中,若循環條件開始即爲假,則循環體一次也不執行。

 

示例:編寫Java 程序,複印36份試卷。

int count = 1; //循環計數器初始爲1
while(count<=36) {//循環終止條件爲達到36
	System.out.println("複印第"+count+"份試卷"); //循環內容
	count++;//改變循環條件,已複印試卷加1     //計數器累加
}

 

5.1.3 while循環的使用

某些循環操作中,表達式和循環條件存在一定的關係

示例:計算1~100之間的整數和。

int count=1,sum=0;
while(count<=100) {
	sum +=count; //累加求和
	count++; //條件改變,被加入sum中的值也會遞增
}
System.out.println("1~100的整數之間的和爲:"+sum);

5.1.4 while循環的注意事項

使用循環不僅可以簡化代碼,還可以解決許多我們之前力所不能及的問題,但在使用循環結構時很容易出現一些問題。

錯誤一:循環一次也不執行

錯誤二:循環執行次數錯誤

錯誤三:死循環

 

5.1.5 實踐練習

 

5.2 深入理解while循環

5.2.1 使用while 循環實現數字統計

問題描述:在控制檯中輸入用戶年齡,直到輸入的數字爲正確的年齡爲止。

循環條件:年齡數據如果不在正確的範圍內,即爲小於0歲或大於130歲。

循環操作:給用戶錯誤提示、重新輸入年齡

Scanner sc = new Scanner(System.in);
System.out.println(" 請輸入用戶的年齡 [0-130]");
// 獲取用戶輸入的年齡
int age = sc.nextInt();
// 如果年齡不在正確範圍則執行循環
while(age <=0 || age >= 130){
	// 錯誤提示
	System.out.println(" 請輸入正確的年齡 [0-130]");
	// 重新獲取年齡
	age = sc.nextInt();
}
// 打印正確的年齡
System.out.println(" 您輸入的年齡爲 " + age + " 歲 ");

5.2.2 使用while循環計算存款利率

問題描述:本金10000 元存入銀行,年利率是千分之三,每過1 年,將本金和利息相加作爲新的本金。賬戶本金需要多少年可以超過12000 元。

循環條件:賬戶本金 <= 12000

循環操作:計算下一年賬戶本金、存款年份累加1

double balance = 10000;  //賬戶本金
double rate = 0.03;//年利率
int years = 0;//存款年限
//使用循環計算
while (balance <= 12000) {
	balance += balance * rate;//進行下一年的本金(當前本金+利息)
	years++;//存款年限累加
	System.out.printf("%d年之後,賬戶本金:%.2f\n", years, balance);
}
System.out.println("存款" + years + "後,賬戶本金將超過12000");

5.2.3 使用while循環計算遊戲數據

問題描述:王者榮耀遊戲中,己方隊員爲5人。通過輸入每個隊員的推塔數統計出最多的推塔數。

循環條件:統計的隊員數量爲5人以內。

循環操作:輸入隊員推塔的數量、判斷是否大於已有的最大值,如果是則將值賦值給最大值變量,保證最大值變量裏永遠都是最大值。

Scanner sc = new Scanner(System.in);
int count = 1;//用來記錄循環的次數
int max = 0;//用來記錄最大推塔數
while(count <= 5){//如果循環次數是6以內則執行循環
	System.out.printf("請輸入第%d個隊員的推塔數量\n",count);
	int num = sc.nextInt();
	//如果當前隊員的推塔數比最大值大,則將當前推塔數保存到最大推塔數變量
	if(num > max){
		max = num;
	}
		count++;//比較完當前隊員推塔數後,改變循環變量
	}
System.out.printf("本局推塔數最多的爲%d",max);

5.2.4 實踐練習

 

5.3 do-while循環

5.3.1 do-while循環語法結構

while 循環不同,do-while 循環先執行循環操作語句,再判斷循環條件,即使循環條件不成立,循環體也至少執行一次

do
{
       循環操作;
}while(循環條件);

while(循環條件)之後的分號“;”不能省略。

循環條件通常是具有boolean類型值的關係表達式或邏輯表達式

do-while循環執行過程:

執行一次循環操作,再計算循環條件的結果,若爲真,則循環條件成立,執行循環操作,重複上述過程,直到循環條件的結果爲假時退出do-while 循環,轉而執行do-while 循環之後的語句。

 

5.3.2 do-while循環的使用

示例:編寫程序模擬學生考試,學生先考試,如果成績沒有及格,則繼續考試,反之則結束。

int score;
Scanner input = new Scanner(System.in);
do {
	System.out.println("學生參加考試!");
	System.out.print("老師請輸入學生考試成績:");
	score = input.nextInt();
} while(score<60);
System.out.println("恭喜你,考試成績合格!");

 

示例:計算1-100之間所有自然數之和。

int count = 1, sum = 0;
do {
	sum += count;
	count++;
} while (count <= 100);
System.out.println("1-100自然數之和:" + sum); 

 

5.3.3 while循環與do-while循環區別

 

 

while循環

do-while循環

相同點

實現循環結構

適用於循環次數未知的情況

不同點

while(循環條件)

{

        循環操作;

}

do

{

       循環操作;

} while(循環條件);

先判斷後執行

先執行後判斷

一開始循環條件爲假,循環一次也不執行

一開始循環條件爲假,循環一次也不執行

 

5.3.4 實踐練習

 

5.4 深入理解do-while循環

5.4.1 使用do-while循環模擬ATM機菜單項

問題描述:在控制檯中模擬ATM機菜單項的選擇。

循環條件:用戶選擇的菜單項不是“退出”

循環操作:顯示菜單項列表、根據用戶選擇的菜單項,顯示對應信息

do {
	System.out.println("【1】查詢餘額");
	System.out.println("【2】取款和轉賬");
	System.out.println("【3】存款");
	System.out.println("【4】退出");
	System.out.println("請選擇:");
	choose = sc.next();
	switch (choose) {
		case "1":
			System.out.println("歡迎使用查詢餘額模塊");
			break;
		//省略其他case及default
	}
} while (!"4".equals(choose));//如果用戶選擇的不是4則繼續循環

5.4.2 使用do-while循環求各位數之和

問題描述:輸入一個數字(不限定位數),計算該數字的各位數字之和。

數字中各個位置上的數字分離過程如下

數字 397

分離個位:397%10=7

分離十位:397/10=39;    39%10=9

分離百位:39/10=3;      3%10=3

Scanner sc = new Scanner(System.in);
int num;// 用戶輸入的數字
int temp;// 存儲分離出來的數字
int sum = 0;// 存儲各位數字之和
System.out.println(" 請輸入一個數字(不限定位數):");
num = sc.nextInt();
do {
	temp = num % 10;// 分離當前位置上的數字
	sum += temp;// 累加各位數字
	num = num / 10;
} while (num > 0);
System.out.printf(" 各位數字之和:%d", sum);

5.4.3 實踐練習

 

總結:

  • 循環結構由循環條件和循環操作構成,只要滿足循環條件,循環操作就會重複執行。
  • 使用循環解決問題的步驟爲:分析循環條件和循環操作,套用循環結構的語法,檢查循環能否退出。
  • 編寫循環結構代碼時要注意,循環變量的初值和結束條件,確保循環次數正確;檢查循環條件能否使循環結束,避免出現死循環。
  • while循環結構的特點是先判斷,後執行循環體。do-while循環的特點是先執行循環體,然後判斷循環條件。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章