Java 循环 高级(笔记)


1. 无限循环

又叫死循环, 循环一直不停

1.1 for

java 复制代码
for(;;){
    System.out.println("循环执行一直在打印内容");
}

注意:

  • 初始化语句空着不写,表示循环之前不定义任何控制变量

  • 条件判断语句空着不写,默认表示true,循环一直进行

  • 条件控制语句空着不写,表示每次循环体执行完毕后,控制变量不做任何变化

1.2 while

java 复制代码
while(true){
    System.out.println("循环执行一直在打印");
}

注意:

​ 小括号里面不能省略,true一定要写出来,否则代码会报错

1.3 do...while

java 复制代码
do{
    System.out.println("循环执行一直在打印");
}while(true);

注意:

​ 小括号里面不能省略,true一定要写出来,否则代码会报错

1.4 注意

  • 最为常用格式:while
  • 无限循环下面不要再写其他代码了,因为永远执行不了

2. 条件控制语句

  • break
  • continue

2.1 break

不能单独存在的。可以用在switch和循环中,表示结束,跳出的意思

java 复制代码
//1.吃1~5号包子
for (int i = 1; i <= 5; i++) {
    System.out.println("在吃第" + i + "个包子");
    //2.吃完第三个的时候就不吃了
    if(i == 3){
        break;//结束整个循环。
    }
}

2.2 continue

不能单独存在的 只能存在于循环当中 表示:跳过本次循环,继续执行下次循环

java 复制代码
//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提前写好的类,我们不需要关心是如何实现的,只要直接使用就可以了

3.1 使用步骤

  1. 导包
java 复制代码
import java.util.Random;
导包的动作必须出现在类定义的上边。
  1. 创建对象
java 复制代码
Random r = new Random ();
上面这个格式里面,只有r是变量名,可以变,其他的都不允许变。
  1. 生成随机数
java 复制代码
int number = r.nextInt(随机数的范围);
上面这个格式里面,只有number是变量名,可以变,其他的都不允许变。
随机数范围的特点:从0开始,不包含指定值。比如:参数为10,生成的范围[0,10)

代码示例:

java 复制代码
//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. 例题

4.1 输出 100 - 200 内的质数

java 复制代码
package pratice;  
  
public class prime {  
    public static void main (String[] args){  
        //判断100-200之间有多少个素数  
  
        for(int i = 100 ; i <= 200; i++){  
            boolean isPrime = true;  
  
            if( i % 2 == 0 ){  
                isPrime = false;  
                continue;  
            }  
  
            for(int j =2; j <= Math.sqrt(i); j++){  
                if(i % j == 0){  
                    isPrime = false;  
                    break;  
                }  
            }  
  
            if(isPrime){  
                System.out.println(i + "是素数");  
            }  
        }  
    }  
}

4.2 猜数字小游戏

java 复制代码
//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;
    }
}

相关推荐
tt5555555555552 分钟前
电工证学习笔记(二)
笔记·学习·电力
QQ_216962909637 分钟前
Spring Boot 养老院管理系统:从入住、护理到费用结算的全流程实现(源码可领)
java·spring boot·后端
cxoptics1 小时前
冰洲石分束器设计与应用
java
ck-joker1 小时前
M1 Pro跑LLM实测:Ollama+LangChain4j零成本本地大模型开发,比云端API快在哪?
java·语言模型
阿米亚波2 小时前
【C++ STL】std::unordered_multiset
开发语言·数据结构·c++·笔记·stl
丙氨酸長鏈2 小时前
[Bukkit插件开发]手持发射器箭矢机枪 教学文档 面向Python/C#开发者入门Java与Bukkit API
java·python·c#
Nontee2 小时前
设计模式:模板方法与策略,从“每个字都认识“到能说清它们在干嘛
java·数据库·设计模式
我是唐青枫2 小时前
Java ReentrantLock 实战详解:比 synchronized 更灵活的可重入锁
java·开发语言
AnsonNie2 小时前
Ubuntu系统安装裕太微YT6801网卡驱动【笔记】
笔记·ubuntu
晨曦中的暮雨3 小时前
Virtual Thread 优化 Spring AI 阻塞式 LLM I/O:对照压测报告
java·并发·个人项目