continue關鍵字
- continue陳述句用在回圈體中,用于結束本次回圈而開始下一次回圈,
案例題目
使用for回圈列印1 ~ 20之間的所有整數,若遇到5的倍數則跳過不列印,
package demo;
/*
編程實作continue關鍵字的使用
*/
public class ForContinueTest {
public static void main(String[] args) {
// 1.使用for回圈列印1 ~ 20之間的所有整數
for(int i = 1; i <= 20; i++) {
// 若遇到5的倍數則跳過不列印該數,轉而繼續列印下一個數
if(0 == i % 5) {
continue; // 表示提前結束本次回圈,繼續下一次回圈,也就是奔向了i++
}
System.out.println("i = " + i);
}
}
}
i = 1
i = 2
i = 3
i = 4
i = 6
i = 7
i = 8
i = 9
i = 11
i = 12
i = 13
i = 14
i = 16
i = 17
i = 18
i = 19
break關鍵字 😉
- break用于退出當前陳述句塊, break用在回圈體中用于退出回圈,
- for(;;)這種沒有回圈條件的回圈叫做 無限回圈, 俗稱“死回圈”,
案例題目一
不斷地提示用戶輸入聊天內容并輸出,直到用戶輸入”bye”結束聊天,
package demo;
/*
編程使用for回圈和break關鍵字來模擬聊天的程序
*/
import java.util.Scanner;
public class ForBreakTest {
public static void main(String[] args) {
// 5.宣告一個boolean型別的變數作為發送方的標志
boolean flag = true;
// 4.使用無限回圈來模擬不斷地聊天
for(;;) {
// 1.提示用戶輸入要發送的聊天內容并使用變數記錄
System.out.println("請" + (flag? "張三": "李四") +"輸入要發送的聊天內容:");
Scanner sc = new Scanner(System.in);
String str = sc.next();
// 2.判斷用戶輸入的內容是否為"bye",若是則聊天結束
if("bye".equals(str)) {
System.out.println("聊天結束!");
break; // 用于跳出當前回圈
}
// 3.若不是則列印用戶輸入的聊天內容
//else {
//System.out.println("聊天內容是:" + str);
//}
System.out.println((flag? "張三說:": "李四說:") + str + "\n\n\n");
flag = !flag;
}
// ...
}
}
請張三輸入要發送的聊天內容:
在
張三說:在
請李四輸入要發送的聊天內容:
不在
李四說:不在
請張三輸入要發送的聊天內容:
哦
張三說:哦
請李四輸入要發送的聊天內容:
bye
聊天結束!
案例題目 二
猜數字游戲
- 隨機生成數字n(1-100), 等待用戶輸入猜測資料, 根據用戶的輸入比較輸出
猜大了,猜小了,猜對了, 如果用戶猜對了就結束游戲 ,
package demo;
/*
編程使用for回圈實作猜數字游戲
*/
import java.util.Random;
import java.util.Scanner;
public class ForGuessTest {
public static void main(String[] args) {
// 1.隨機生成1 ~ 100之間的整數并使用變數記錄
Random ra = new Random();
int temp = ra.nextInt(100) + 1;
//System.out.println("temp = " + temp);
// 4.宣告一個int型別的變數來統計用戶猜測的次數
int cnt = 0;
for(;;) {
// 2.提示用戶輸入1 ~ 100之間猜測的整數并使用變數記錄
System.out.println("請輸入1 ~ 100之間猜測的整數:");
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
cnt++;
// 3.使用用戶輸入的整數與亂數之間比較大小并給出對應的提示
if(num > temp) {
System.out.println("猜大了,再小一點吧!");
} else if(num < temp) {
System.out.println("猜小了,再大一點吧!");
} else {
System.out.println("恭喜您猜對了,游戲結束!");
break;
}
}
if(1 == cnt) {
System.out.println("你果然是個大咖!");
} else if(cnt <= 6) {
System.out.println("水平不錯,繼續加油哦!");
} else {
System.out.println("你還可以多玩幾次游戲!");
}
}
}
請輸入1 ~ 100之間猜測的整數:
10
猜小了,再大一點吧!
請輸入1 ~ 100之間猜測的整數:
50
猜大了,再小一點吧!
請輸入1 ~ 100之間猜測的整數:
25
猜小了,再大一點吧!
請輸入1 ~ 100之間猜測的整數:
40
猜大了,再小一點吧!
請輸入1 ~ 100之間猜測的整數:
30
恭喜您猜對了,游戲結束!
水平不錯,繼續加油哦!
break關鍵字跳出多層回圈 (雙層回圈學會了再看這個)
- 在嵌套的回圈結構中, break用于退出所在回圈體,
- 如果要退出外層回圈體,需要使用標號的方式,
for (...) { outer: for (...) {
for(...) { for(...) {
break; break outer;
} }
案例題目
-
使用雙重for回圈列印2~100之間的所有素數,
-
當一個數只能被1和它本身整除時,這個數就叫做素數或質數,
package demo;
/*
編程使用雙重for回圈列印2 ~ 100之間的所有素數
*/
public class ForForPrimeTest {
public static void main(String[] args) {
// 1.使用for回圈列印2 ~ 100之間的所有整數
for(int i = 2; i <= 100; i++) {
// 3.宣告一個boolean型別的變數作為是否為素數的標記
boolean flag = true;
// 2.針對每一個當前的整數都要判斷是否為素數,若是素數則列印,否則不列印
// 判斷一個數是否為素數的方法是:若該數不能被2到它本身-1之間的所有整數整除時,則證明該數是素數
// 使用內層for回圈用于控制2到該數自身-1之間的范圍
//for(int j = 2; j < i; j++) {
// 只需要判斷2到該數的平方根即可,因為隨著除數的增大商必然減小,會造成重復的判斷
for(int j = 2; j <= Math.sqrt(i); j++) {
// 使用當前數除以該回圈中的每個資料并判斷是否可以整除,只要找到一個可以整除的資料,則證明該數不是素數
if(0 == i % j) {
flag = false;
break; // 跳出當前所在的內層回圈,也就是不需要再繼續除以下一個整數
}
}
// 只可以列印素數
if(flag) {
System.out.println("i = " + i);
}
}
}
}
i = 2
i = 3
i = 5
i = 7
i = 11
i = 13
i = 17
i = 19
i = 23
i = 29
i = 31
i = 37
i = 41
i = 43
i = 47
i = 53
i = 59
i = 61
i = 67
i = 71
i = 73
i = 79
i = 83
i = 89
i = 97
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/297378.html
標籤:其他
上一篇:專案四:串口列印超聲波測距
