第五 Java循環結構之while循環

C語言中的循環結構


需求:需要打印一行字符串"今天天氣特別好",100次

就需要將該語句打印100遍System.out.println("hellogzitcast");

那麼如何解決該問題?

    Java提供個一個稱之爲循環的結構,用來控制一個操作的重複執行。

                int count = 0;
		while (count < 100) {
			System.out.println("今天天氣特別好");
			count++;
                 }
                 System.out.println("over");

變量count初始化值爲0,循環檢查count<100是否爲true,如果爲true執行循環體(while後{}之間的語句),輸出"hellogzitcast"語句,然後count自增一,重複循環,直到count是100時,也就是count<100爲false時,循環停止。執行循環之後的下一條語句。

    Java提供了三種類型的循環語句:while循環,do-while循環和for循環。

 

1、while語句格式

while(條件表達式)

{

    執行語句;

}

 

 

定義需求:想要打印5次helloworld

public static void main(String[] args) {
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
}

第二種方式

public static void main(String[] args) {
		int x = 0;
		while (x < 5) {
			System.out.println("hello java ");
		}
}

如果是在dos裏編譯和運行,是不會停止,除非系統死機。需要ctrl+c來結束。

這就是真循環或者死循環。因爲x<5永遠爲真。


public static void main(String[] args) {
		int x = 0;
		while (x < 5) {
			System.out.println("hello java ");
			x++;
		}
	}


讓x自增,那麼就會有不滿足條件的時候。循環就會結束。


注意:要精確控制循環的次數。常犯錯誤是是循環多執行一次或者少執行一次。

例如會執行101次,想要執行100次,要麼是count初始值爲1,然後count<=100

要麼是count初始值爲0,coung<100


                int count = 0;
		while (count <=100) {
			System.out.println("hello");
			count++;
		}
		System.out.println("over");



猜數字遊戲:

編寫程序隨即生成一個0-100之間的隨機數。程序提示用戶輸入一個數字,不停猜測,直到猜對爲止。最後輸出猜測的數字,和猜測的次數。並且如果沒有猜中要提示用戶輸入的值是大了還是小了。

思考:

如何生成1-100之間隨機數?

(int)(Math.random()*100)+1;

如何提示用戶輸入數字,

Scanner  sc=new Scanner(System.in);

int guessNum= sc.nextInt();

需要將隨機數和用戶輸入的數字進行比較。

 

猜一次:

                Scanner sc = new Scanner(System.in);
                int num = (int)(Math.random()*100)+1;
		System.out.println("請輸入0-100之間整數");
		int guessNum = sc.nextInt();
		if (guessNum == num) {
			System.out.println("中啦");
		} else if (guessNum < num) {
			System.out.println("小啦");
		} else {
			System.out.println("大了");
		}

這個程序只能才一次,如何讓用戶重複輸入直到猜對?

可以使用while循環


public static void main(String[] args) {
		int num = (int)(Math.random()*100)+1;
		Scanner sc = new Scanner(System.in);
		while (true) {
			System.out.println("請輸入1-100之間整數");
			int guessNum = sc.nextInt();
			if (guessNum == num) {
				System.out.println("中啦");
			} else if (guessNum < num) {
				System.out.println("小啦");
			} else {
				System.out.println("大了");
			}
		}
	}


該方案發現了問題,雖然實現了讓用戶不停的輸入,但是即使猜中了程序也不會停止。

那麼就需要控制循環次數了。也就是while()括號中的條件表達式。當用戶猜測的數和系統生成的數字不相等時,就需要繼續循環。


int num = (int)(Math.random()*100)+1;
		Scanner sc = new Scanner(System.in);
		
		int guessNum = -1;
		while (guessNum != num) {
System.out.println("請輸入1-100之間整數");
			guessNum = sc.nextInt();
			if (guessNum == num) {
				System.out.println("中啦");
			} else if (guessNum < num) {
				System.out.println("小啦");
			} else {
				System.out.println("大了");
			}
		}

爲什麼將guessNum初始化值爲-1?因爲如果初始化爲0到100之間程序會出錯,因爲可能是要猜的數。

1:首先程序生成了一個隨機數

2:用戶輸入一個數字

3:循環檢查用戶數字和隨機數是否相同,知道相同位置,循環結束







發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章