Java迴圈

瑪拉_以琳發表於2023-02-16

1.無限迴圈

概念:

​ 又叫死迴圈。迴圈一直停不下來。

for格式:

for(;;){
    System.out.println("迴圈執行一直在列印內容");
}

解釋:

初始化語句可以空著不寫,表示迴圈之前不定義任何的控制變數。

條件判斷語句可以空著不寫,如果不寫,預設表示true,迴圈一直進行。

條件控制語句可以空著不寫,表示每次迴圈體執行完畢後,控制變數不做任何變化。

while格式:

while(true){
    System.out.println("迴圈執行一直在列印內容");
}

解釋:

​ 小括號裡面就不能省略了,true一定要寫出來,否則程式碼會報錯。

do...while格式:

do{
    System.out.println("迴圈執行一直在列印內容");
}while(true);

解釋:

​ 小括號裡面就不能省略了,true一定要寫出來,否則程式碼會報錯。

無限迴圈的注意事項:

  • 最為常用的格式:while
  • 無限迴圈下面不能再寫其他程式碼了,因為永遠執行不到。

2.條件控制語句

  • break
  • continue

break:

​ 不能單獨存在的。可以用在switch和迴圈中,表示結束,跳出的意思。

程式碼示例:

//1.吃1~5號包子
for (int i = 1; i <= 5; i++) {
    System.out.println("在吃第" + i + "個包子");
    //2.吃完第三個的時候就不吃了
    if(i == 3){
        break;//結束整個迴圈。
    }
}

continue:

​ 不能單獨存在的。只能存在於迴圈當中。

​ 表示:跳過本次迴圈,繼續執行下次迴圈。

程式碼示例:

//1.吃1~5號包子
for (int i = 1; i <= 5; i++) {
    //2.第3個包子有蟲子就跳過,繼續吃下面的包子
    if(i == 3){
        //跳過本次迴圈(本次迴圈中,下面的程式碼就不執行了),繼續執行下次迴圈。
        continue;
    }
    System.out.println("在吃第" + i + "個包子");
}

3. Random

Random跟Scanner一樣,也是Java提前寫好的類,我們不需要關心是如何實現的,只要直接使用就可以了。

使用步驟:

  1. 導包
import java.util.Random;
導包的動作必須出現在類定義的上邊。
  1. 建立物件
Random r = new Random ();
上面這個格式裡面,只有r是變數名,可以變,其他的都不允許變。
  1. 生成隨機數
int number = r.nextInt(隨機數的範圍);
上面這個格式裡面,只有number是變數名,可以變,其他的都不允許變。
隨機數範圍的特點:從0開始,不包含指定值。比如:引數為10,生成的範圍[0,10)

程式碼示例:

//1.導包
import java.util.Random;

public class RandomDemo1 {
    public static void main(String[] args) {
        //2.建立物件
        Random r = new Random();
        //3.生成隨機數
        int number = r.nextInt(100);//包左不包右,包頭不包尾
        //0 ~ 99
        System.out.println(number);

    }
}

4. 逢七過

需求:

​ 朋友聚會的時候可能會玩一個遊戲:逢7過

​ 遊戲規則:從任意一個數字開始報數,當你要報的數字是包含7或者是7的倍數時都要說過:過

​ 使用程式在控制檯列印出1-100之間的滿足逢七必過規則的資料

舉例:

​ 1 2 3 4 5 6 過 8 9 10 11 12 13 過 15 16 過 18 ...

程式碼示例:

/*朋友聚會的時候可能會玩一個遊戲:逢7過
        遊戲規則:從任意一個數字開始報數,當你要報的數字是包含7或者是7的倍數時都要說過:過
        需求:使用程式在控制檯列印出1-100之間的滿足逢七必過規則的資料*/
//分析:
//個位7  十位7   7倍數
//1 2 3 4 5 6 過 8 9 10 11 12 13 過 15 16 過 18 19 20 過....
//69 過 過 過 過 過 過... 80
//1.得到1~100之間的每一個數字
//開始:1
//結束:100
for (int i = 1; i <= 100; i++) {
    //2.判斷每一個數字,如果符合規則,就列印過,如果不符合規則就列印真實的數字
    if(i % 10 == 7 || i / 10 % 10 == 7  ||  i % 7 == 0){
        System.out.println("過");
        continue;
    }
    System.out.println(i);
}

5. 平方根

需求:

​ 鍵盤錄入一個大於等於2的整數 x ,計算並返回 x 的 平方根 。結果只保留整數部分 ,小數部分將被捨去 。

程式碼示例:

/*需求:鍵盤錄入一個大於等於2的整數 x ,計算並返回 x 的 平方根 。
        結果只保留整數部分 ,小數部分將被捨去 。*/


//分析:
//平方根   16的平方根4
//         4的平方根2


// 10
// 1 * 1 = 1 < 10
// 2 * 2 = 4 < 10
// 3 * 3 = 9 < 10
// 4 * 4 = 16 > 10
//推斷:10的平方根是在3~4之間。


// 20
// 1 * 1 = 1 < 20
// 2 * 2 = 4 < 20
// 3 * 3 = 9 < 20
// 4 * 4 = 16 < 20
// 5 * 5 = 25 > 20
//推斷:20的平方根是在4~5之間。


//在程式碼當中
//從1開始迴圈,拿著數字的平方跟原來的數字進行比較
//如果小於的,那麼繼續往後判斷
//如果相等,那麼當前數字就是平方根
//如果大於的,那麼前一個數字就是平方跟的整數部分


//1.鍵盤錄入一個整數
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個整數");
int number = sc.nextInt();
//2.從1開始迴圈判斷
//開始:1 結束: number
for (int i = 1; i <= number; i++) {
    //用i * i 再跟number進行比較
    if(i * i == number){
        System.out.println(i + "就是" + number + "的平方根");
        //一旦找到了,迴圈就可以停止了,後面的數字就不需要再找了,提高程式碼的執行效率。
        break;
    }else if(i * i > number){
        System.out.println((i - 1) + "就是" + number + "平方根的整數部分");
        break;
    }
}

6.判斷是否為質數

需求:

​ 鍵盤錄入一個正整數 x ,判斷該整數是否為一個質數。

程式碼示例:

//需求:鍵盤錄入一個正整數 x ,判斷該整數是否為一個質數。

//質數:
//如果一個整數只能被1和本身整除,那麼這個數就是質數。否則這個數叫做合數
//7 = 1 * 7 質數
//8 = 1 * 8  2 * 4 合數


//分析:
//1.鍵盤錄入一個正整數
//number
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個正整數");
int number = sc.nextInt();//9

//定義一個變數,表示標記
//標記著number是否為一個質數
//true: 是一個質數
//false : 不是一個質數

//表示最初就認為number是一個質數
boolean flag = true;


//2.判斷
//寫一個迴圈,從2開始判斷,一直判斷到number-1為止
//看這個範圍之內,有沒有數字可以被number整除
for (int i = 2; i < number; i++) {
    //i 依次表示這個範圍之內的每一個數字
    //看number是否能被i整除就可以了
    if(number % i == 0){// 9 % 2 = 1
        flag = false;
        //System.out.println(number + "不是一個質數");
        break;
    }/*else{
                System.out.println(number + "是一個質數");
            }*/
}

//只有當這個迴圈結束了,表示這個範圍之內所有的數字都判斷完畢了
//此時才能斷定number是一個質數
if(flag){
    System.out.println(number + "是一個質數");
}else{
    System.out.println(number + "不是一個質數");
}

7. 猜數字小遊戲

需求:

​ 程式自動生成一個1-100之間的隨機數,在程式碼中使用鍵盤錄入去猜出這個數字是多少?

要求:

​ 使用迴圈猜,一直猜中為止。

思路分析:

  1. 生成一個1-100之間的隨機數
  2. 使用鍵盤錄入去猜出這個數字是多少
  3. 把反覆猜的程式碼寫在迴圈中

程式碼示例:

//1.生成一個1-100之間的隨機數
Random r = new Random();
int number = r.nextInt(100) + 1;// 0 ~ 99 + 1 --- 1 ~ 100
System.out.println(number);

//2.使用鍵盤錄入去猜出這個數字是多少?
Scanner sc = new Scanner(System.in);
while(true){
    System.out.println("請輸入一個整數");
    int guessNumber = sc.nextInt();
    //3.比較
    if(guessNumber > number){
        System.out.println("您猜的數字大了");
    }else if(guessNumber < number){
        System.out.println("您猜的數字小了");
    }else{
        System.out.println("恭喜你,猜中了");
        break;
    }
}

相關文章