关于后端:Java循环

5次阅读

共计 3715 个字符,预计需要花费 10 分钟才能阅读完成。

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;
    }
}
正文完
 0