1. 程式人生 > >迴圈及三種迴圈結構的更加適用情況:

迴圈及三種迴圈結構的更加適用情況:

/*
 * 1.迴圈
 * 2.迴圈三要素:
 *    1)迴圈變數的初始化
 *    2)迴圈的條件(以迴圈變數為基礎)
 *    3)迴圈變數的改變(向著迴圈的結束變)
 *    迴圈變數:在迴圈過程中的那個量
 * 3.迴圈結構:
 *    1)while迴圈:先判斷後執行,有可能一次都不執行
 *    2)do.....while結構:先執行後判斷,至少執行一次
 *                       第1要素與第3要素相同時,首選
 *    3)for結構:應用率最高
 *    
 * 1.while(boolean表示式){//boolean為true,執行語句塊,否則退出
 *      if(true){
 *         break;   //break用再迴圈體中用於退出迴圈
 *      }

 *      語句塊  //被重複的操作
 * }
 *     迴圈能跳出的條件:1)條件為假
 *                     2)碰著break
 * 
 * 2.do-while//無論boolean表示式是否為true,都先執行一次語句塊
 *    do{
 *        語 句 塊        
 *    }while(boolean表示式)
 *    
 *    
 * 3.for結構應用:
 *    for(要素1;要素2;要素3){
 *         語句塊;
 *    }
 *  特殊用法:
 *    要素1;
 *    for(;要素2;要素3){
 *    }  
 * 4.break:跳出迴圈,常常與條件語句一起使用
 *   continue:跳過迴圈體中剩餘語句而執行下一次迴圈

   5..三種迴圈結構的更加適用情況:
 *   5.1)while:"當---"迴圈
 *   5.2)do--while:"直到---"迴圈
 *                第1要素與第3要素相同時首選
 *  5. 3)for:固定次數迴圈,應用率最高
 *
 * 6.巢狀迴圈:
 *  6.1)迴圈中套迴圈,一般多行多列時使用,
 *     外層控制行,內層控制列
 *  6.2)執行過程:外層迴圈走一次,內層迴圈走所有次
 *  6.3)建議:巢狀層次越少越好,能用一層就不能用兩層
 *           若邏輯必須要通過3層以上才能解決,說明設計
 *           有問題.
 *  6.4)break只能跳出一層迴圈 

 * */

案例1.

/*  隨機加法運算器:
 *     程式依次出10道題目,由使用者輸入題目的答案;
 *     使用者每答完一道題,程式判斷對錯,並提示:"答對了"
 *     或“答錯了”
 *     10道題目答完之後,系統計算得分並輸出;
 *     使用者希望提前結束,可以輸入-1提前退出。

 * */

import java.util.Scanner;

public class PracticeAdd1 {

	public static void main(String[] args) {
	Scanner scan = new Scanner(System.in);
	int score=0;
	for(int i=1;i<=10;i++){
		int x = (int)(Math.random()*100);
		int y = (int)(Math.random()*100);
		int result = x+y;
		System.out.print("("+i+")"+x+"+"+y+"=");
		int n= scan.nextInt();
		if(n==-1){
			break;
		}
		if(result==n){
			System.out.println("答對了");
			score+=10;
		}else{
			System.out.println("答錯了");
		}
	}
	System.out.println(score);
	}

}

案例2.

    //while的演示


/*案例:程式隨機生成並存儲一個整數:
*      使用者輸入一個整數,程式給出與儲存的數字“大”或“小”
*      的比較結果提示;直到使用者猜對數字為止;
*      如果中途,使用者希望結束程式,可以輸入0退出
*  Math.random()------0.0~0.999999
* *1000-------------0.0~999.99999
*  +1---------------1.0~1000.99999
*  

* */

import java.util.Scanner;
public class Guessing {

	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int num = (int)(Math.random()*1000+1);
		System.out.println(num);
		
		int guess;
		do{
			System.out.println("猜吧");
			guess = scan.nextInt();
			if(guess==0){
				break;
			}
			if(guess>num){
				System.out.println("太大了");
			}else if(guess<num){
				System.out.println("太小了");
			}
		}while(guess!=num);
		  if(guess==num){
		    	System.out.println("恭喜,猜對啦");
		    }else{
		    	System.out.println("下次再來吧");
		    }
		
		/*
		System.out.println("猜吧");
		int guess = scan.nextInt();
		while(guess!=num){
			if(guess==0){
				break;
			}
			if(guess>num){
				System.out.println("太大了");
			}else{
				System.out.println("太小了");
			}
			System.out.println("猜吧");
			guess = scan.nextInt();
		}
	    if(guess==num){
	    	System.out.println("恭喜,猜對啦");
	    }else{
	    	System.out.println("下次再來吧");
	    }
         */
	}

}