java循環結構_break關鍵字

break關鍵字html

使用場合:代理

適用於switch選擇結構。htm

適用於for、while和do…while循環結構。字符串

break的做用:get

若是用於switch選擇結構,那麼做用就是跳出switch選擇結構,執行switch選擇結構以後的代碼。input

若是用於循環結構,那麼做用就是跳出當前循環,執行循環以後的代碼。it

break練習題for循環

一、 韓信點兵,三人一組餘兩人,五人一組餘三人,七人一組餘四人,請問最少須要多少士兵。變量

/**循環

* 思路分析:

* 由於不明確循環的範圍(條件),因此咱們能夠採用死循環來實現,假設循環變量爲i。

* 循環變量從1開始遞增,每次遞增+1。循環變量就是咱們須要找的士兵人數!

* 當i知足「i % 3 == 2 && i % 5 == 3 && i % 7 == 4」條件,則找到韓信點兵的人數。

* 知足韓信點兵條件,那麼後續循環也沒必須繼續進行,直接跳出循環便可。--> break關鍵字

* 注意:死循環通常和break關鍵字一塊兒使用。

*/

int i = 1;

while(true) {

if(i % 3 == 2 && i % 5 == 3 && i % 7 == 4) {

System.out.println(i);

break;

}

i++;

}

/**

* for循環和while循環總結

* 核心:for循環能作的事情while循環也能實現,while循環能作的事情for循環也能實現。

* while循環的使用場合:

* a)當不明確循環次數的時候,建議使用while死循環。

* --> 好處:語法簡潔、可讀性高

* b)當循環結束以後,還須要使用循環變量的時候,建議使用while循環。

* --> 由於while循環的循環變量就是聲明在循環以外的。

*/

二、 **[難]**輸入一個任意整數,判斷它是否爲質數,若是是質數就輸出「是質數」,不然輸出‘不是質數’。質數:除了1和它自己以外,不能被其餘數整除的正整數稱質數。

實現方案一:假設法

/**

* 步驟分析:

* a)經過Scanner得到一個整數,假設使用變量num來保存該整數。

* b)經過for循環得到[2, num - 1]之間的全部整數,假設循環變量爲i。

* c)判斷num是否爲質數,若是num能別[2, num - 1]之間任意一個數整除,則證實num不是一個質數!

* 1)在判斷num是否爲質數以前,先假設num就是一個質數。

* --> 定義一個標記(flag),而且把標記值設置爲true。

* 2)在判斷num是否爲質數的過程當中,若是num能被[2, num - 1]之間的其中一個數整除,則證實num不是質數!

* --> 推翻假設,設置flag的標記值爲false。

* --> 既然已經肯定num不是一個質數,那麼後續循環也沒必須繼續進行,使用break跳出循環便可!

* 3)判斷num是否爲質數完畢後,檢查flag標記的值,從而肯定num是否爲質數!

* --> 若是flag標記值爲true,則證實假設成立,也就意味着num是一個質數!

* --> 若是flag標記值爲false,則證實假設失敗,也就意味着num不是一個質數!

*/

// 1.經過Scanner得到一個整數

Scanner input = new Scanner(System.in);

System.out.print("請輸入一個正整數:");

int num = input.nextInt();

// 2.經過for循環得到[2, num - 1]之間的全部整數

// a)在判斷num是否爲質數以前,先假設num就是一個質數。

boolean flag = true;

for(int i = 2; i < num; i++) {

// 3.判斷num是否爲質數。

// b)在判斷num是否爲質數的過程當中,若是num能被[2, num - 1]之間的其中一個數整除,則證實num不是質數!

if(num % i == 0) {

// 推翻假設,設置flag的標記值爲false。

flag = false;

// 既然已經肯定num不是一個質數,那麼後續循環也沒必須繼續進行,使用break跳出循環便可!

break;

}

}

// c)判斷num是否爲質數完畢後,檢查flag標記的值,從而肯定num是否爲質數!

if(flag) { // 證實假設成立,也就意味着num是一個質數!

System.out.println(num + "是一個質數");

}

else { // 證實假設失敗,也就意味着num不是一個質數!

System.out.println(num + "不是一個質數");

}

實現方法二:經過分析for循環的執行順序來實現!

/**

* 步驟分析:

* a)經過Scanner得到一個整數,假設使用變量num來保存該整數。

* b)經過for循環得到[2, num - 1]之間的全部整數,假設循環變量爲i。

* c)判斷num是否爲質數,若是num能別[2, num - 1]之間任意一個數整除,則證實num不是一個質數!

* 1)在判斷num是否爲質數的過程當中,若是num能被[2, num - 1]之間的其中一個數整除,則跳出循環。

* 2)判斷num是否爲質數的循環後,判斷循環遍歷i的值,從而肯定num是否爲質數。

*/

// 1.經過Scanner得到一個整數

Scanner input = new Scanner(System.in);

System.out.print("請輸入一個正整數:");

int num = input.nextInt();

// 2.經過for循環得到[2, num - 1]之間的全部整數

int i = 2;

for (; i < num; i++) {

// 3.判斷num是否爲質數。

if(num % i == 0) {

break;

}

}

// 判斷i的值,從而肯定循環是否正常執行完畢

if(i == num) { // 正常執行完畢,永遠沒法知足「num % i == 0」的條件,也就意味着num是一個質數

System.out.println(num + "是一個質數");

}

else { // 循環執行過程當中,知足「num % i == 0」的條件,也就意味着num不是一個質數

System.out.println(num + "不是一個質數");

}

三、**[難]**輸入一個正整數,而後把該正整數轉化爲二進制。

/**

* 思路分析:

* a)得到輸入整數的二進制位

* 核心思路:除以2取餘數,得到餘數反過來就是二進制值。

* 例如:假設輸入的正整數爲20,而且使用num變量來保存。

* 第一趟:int bit = num % 2; num /= 2; --> bit = 0, num = 10;

* 第二趟:int bit = num % 2; num /= 2; --> bit = 0, num = 5;

* 第三趟:int bit = num % 2; num /= 2; --> bit = 1, num = 2;

* 第四趟:int bit = num % 2; num /= 2; --> bit = 0, num = 1;

* 第五趟:int bit = num % 2; num /= 2; --> bit = 1, num = 0;

* 經過以上思路分析,咱們發現每一趟的代碼都是如出一轍,因此咱們使用循環來實現。

* --> 由於不明確循環次數,因此咱們採用死循環來實現。Axitrader代理申請http://www.kaifx.cn/broker/ax...
,while(true) {}

* --> 當num的結果爲0時,就能夠結束死循環。break關鍵字

* b)經過得到的二進制位從而獲得二進制值。

* 核心思路:定義一個字符串,用於保存num的二進制值。

* a)在循環以外,定義一個字符串(bitStr),用於保存num的二進制值

* b)每得到一個二進制位,就把該二進制位插入到bitStr的最前面。

*/

// 1.經過Scanner得到一個正整數

Scanner input = new Scanner(System.in);

System.out.print("請輸入一個正整數:");

int num = input.nextInt();

// 2.得到正整數num的二進制位

// a)在循環以外,定義一個字符串,用於保存num的二進制值

String bitStr = "";

while (true) {

// 得到num的二進制位

int bit = num % 2;

/**

* b)每得到一個二進制位,就把該二進制位插入到bitStr的最前面。

* 第一趟:bit = 0, bitStr = 0 + bitStr; --> bitStr = "0";

* 第二趟:bit = 0, bitStr = 0 + bitStr; --> bitStr = "00";

* 第三趟:bit = 1, bitStr = 1 + bitStr; --> bitStr = "100";

* 第四趟:bit = 0, bitStr = 0 + bitStr; --> bitStr = "0100";

* 第五趟:bit = 1, bitStr = 1 + bitStr; --> bitStr = "10100";

*/

bitStr = bit + bitStr;

// 更新num的值,爲下一趟循環作鋪墊

num /= 2;

// 當num的值爲0時,結束死循環

if (num == 0) {

break;

}

}

System.out.println(bitStr);

相關文章
相關標籤/搜索