Web | Coding | Blog | SOHO

[Java]第五章:選擇性敘述與迴圈( Part II )

接續Part I

迴圈可以重複執行相同程式的片段,還可以讓程式結構化。
這章學習如何利用不同的結構,撰寫更靈活,操作更方便。

參考書籍:Java 7 教學手冊

需要執行某項功能時,迴圈是最好的選擇。

迴圈包括 for、while、do while

for迴圈:知道執行次數。 以下為格式

 for(設定迴圈初值; 判斷條件; 設定增減量)
{
     迴圈主體;
}

 

ch05-4

以下範例:

public class ch05_4 {

	public static void main(String[] args) {
		int i,sum=0;

		for(i=1; i<=10; i++)
			sum+=i;
		System.out.println("1+2+...+10= "+sum);

	}

OUTPUT:

1+2+…+10= 55

在迴圈裡宣告的變數只是區域變數,跳出迴圈後,這個變數將不再使用。
透夠以下範例認識:

public static void main(String[] args) {
		int sum=0;

		for(int i=1; i<=3; i++) //在迴圈內宣告變數i
		{
			sum+=i;
			System.out.println("i="+i+", sum="+sum);
		}
	}

OUTPUT:
i=1, sum=1
i=2, sum=3
i=3, sum=6


也可以同時宣告數個變數,並且給予初值;
要注意的是,這些變數必須為相同的型態;
換句話說:關鍵字只能出現一次。

for (int i=0,j=0; 判斷條件; 設定增減量)

while 迴圈:無事先得知執行次數。 以下為格式

設定迴圈初值; 
while(判斷條件)
{
     迴圈主體;
     設定增減量;
}

 

在while 迴圈中,通常判斷條件為邏輯運算子的運算式。

ch05-4

以下範例:

public class ch05_6 {

	public static void main(String[] args) {
		int n=0,sum=0;
		while(sum<20)
		{
			System.out.println("n="+n+", sum="+sum);
			n++;
			sum+=n;
		}

	}

OUTPUT:
n=0, sum=0
n=1, sum=1
n=2, sum=3
n=3, sum=6
n=4, sum=10
n=5, sum=15


do while 迴圈:

與while 不同在於,while會先判斷條件真假,而do while 是先執行後判斷真假
因此至少會執行一次迴圈。以下為格式

設定迴圈初值;
do
{
   迴圈主體;
   設定增減量;
}while(判斷條件)

 

ch05-5

以下範例:

import java.util.Scanner;
public class ch05_7 {

	public static void main(String[] args) {
		Scanner scn=new Scanner (System.in);
		int n,i=1,sum=0;

		do{
			System.out.print("請輸入值");
			n=scn.nextInt();
		}while (n<1); //輸入值要為大於0,否則將會一直印字串
		do
			sum+=i++; // 計算sum=sum+i, i值再加1
		while(i<=n);

		System.out.println("1+2+...+"+n+"="+sum);

	}

OUTPUT:
請輸入值-1
請輸入值-3
請輸入值0  // 輸入 -1 -3 0 皆小於1 所以重複要求輸入
請輸入值5  //5>1 條件正確
1+2+…+5=15


巢狀迴圈:迴圈敘述中又有其他迴圈敘述。

以下範例:99乘法表

public static void main(String[] args) {
		int i,j;
		for (i=1; i<=9; i++)  //外迴圈
		{
			for (j=1; j<=9; j++)  //內迴圈
				System.out.print(i+"*"+j+"="+(i*j)+"\t");
			System.out.println();
		}

	}

OUTPUT:

ch05-6


在Part III 會介紹迴圈的跳離與更好用的多重選擇

點此繼續閱讀 Part III

Java 學習日誌 (點此閱讀所有 Java日誌)
有任何問題也歡迎在底下留言,或到fb粉絲專頁發訊息給站長一起討論。


如果您喜歡本站的文章,也歡迎將文章分享轉貼並註明出處;
另外還未按讚粉絲專頁的朋友,也可以動動手點擊追蹤最新的文章唷:

Comments

comments

如果您喜歡本站的文章,也歡迎將文章分享轉貼並註明出處;另外還未按讚粉絲專頁的朋友,也可以動動手點擊追蹤最新的文章唷:


© 2017 4xCode™ | Design:SC 站長