【JAVASE】循环结构

news2024/9/28 17:32:58

⭐ 作者:小胡_不糊涂
🌱 作者主页:小胡_不糊涂的个人主页
📀 收录专栏:浅谈Java
💖 持续更文,关注博主少走弯路,谢谢大家支持 💖

循环

  • 1. 循环结构
    • 1.1 while 循环
    • 1.2 break
    • 1.3 continue
    • 1.4 for 循环
    • 1.5 do...while循环
  • 2. 输入输出
    • 2.1 输出到控制台
    • 2.2 从键盘输入
  • 🎊彩蛋
    • 猜数字游戏

1. 循环结构

1.1 while 循环

基本语法格式:

while(循环条件){
	循环语句;
}

循环条件为 true,则执行循环语句;否则结束循环。
一个循环,肯定有开始,有结束

实例1:打印 1-10 的数字

public static void main(String[] args) {
        int num = 1;
        while (num <= 10) {
            System.out.println(num);
            num++;
        }
}

🍤 运行结果:

在这里插入图片描述

实例2:计算 1-100 的和

 public static void main(String[] args) {
        int n = 1;
        int sum = 0;
        while (n <= 100) {
            sum += n;//sum=sum+n,实现累加
            n++;
        }
        System.out.println(sum);
    }

🍤 运行结果:

在这里插入图片描述

实例3:求 1-100 以内偶数的和

  //1-100偶数的和
public static void main(String[] args) {
            int sum1 = 0;
            int a = 2;
            while (a <= 100) {
                sum1 += a;
                a += 2;
            }
            System.out.println(sum1);
}

//1-100奇数的和
public static void main(String[] args) {
            int sum2 = 0;
            int a = 1;
            while (a <= 100) {
                sum2 += a;
                a += 2;
            }
            System.out.println(sum2);
}            

实例4:计算 5 的阶乘

5!=54321
4!=4321
3!=3
21
2!=2
1
1!=1
0!=1

public static void main(String[] args) {
        int n = 1;
        int result = 1;
        while (n <= 5) {
            result *= n;//累乘
            n++;
        }
        System.out.println(result);
}

🍤 运行结果:

在这里插入图片描述

实例5:计算 1!+2!+…+5!

这里既要算加法,还要算阶乘。在每一个数字阶乘计算后,然后求和,我们可以采用嵌套循环,内循环负责求阶乘,外循环负责求和。

public static void main(String[] args) {
        int num = 1;
        int sum = 0;
        // 外层循环负责求阶乘的和
        while (num <= 5) {
            int k = 1;
            int i = 1;
            // 里层循环负责完成求阶乘
            while (i <= num) {
                k *= i;//k=k*i
                i++;
            }
            sum += k;//sum=sum+k
            num++;
        }
        System.out.println("sum = " + sum);
}

🍤 运行结果:

在这里插入图片描述

实例6:找到1-100之间既能被3整除也能被5整除的数

public static void main(String[] args) {
        int  i = 1;
        while (i <= 100) {
            if(i % 15 != 0) {
                i++;
                continue;//有关continue的介绍在下面
            }
            System.out.println(i);
            i++;
        }
}

🍤 运行结果:

在这里插入图片描述

注:

  • 和 if 类似,while 下面的语句可以不写 { } ,但是不写的时候只能支持一条语句,建议还是加上 { }。
  • 和 if 类似,while 后面的 { 建议和 while 写在同一行。
  • 和 if 类似,while 后面不要多写分号,否则可能导致循环不能正确执行。

比如:

int num = 1;
while (num <= 10); {
	System.out.println(num);
	num++;
}
//[无任何输出, 程序死循环]

这里为 while 的语句体(这是一个空语句),实际的 { } 部分和循环无关,此时循环条件 num <= 10 恒成立,导致代码死循环

1.2 break

break 的功能是让循环提前结束

实例:找到 100 - 200 中第一个 3 的倍数

public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 3 == 0) {
                System.out.println("找到了 3 的倍数, 为:" + num);
                break;
            }
            num++;
        }
}

🍤 运行结果:

在这里插入图片描述

执行到 break 就会让循环结束。

1.3 continue

continue 的功能是跳过这次循环,立即进入下次循环

实例:找到 100 - 200 中所有 3 的倍数

public static void main(String[] args) {
        int num = 100;
        while (num <= 200) {
            if (num % 3 != 0) {
                num++; // 这里的 ++ 不要忘记! 否则会死循环.
                continue;
            }
            System.out.println("找到了 3 的倍数, 为:" + num);
            num++;
        }
}

🍤 运行结果:

在这里插入图片描述

执行到 continue 语句的时候,就会立刻进入下次循环(判定循环条件),从而不会执行到下方的打印语句。

1.4 for 循环

基本语法:

for(表达式1;布尔表达式2;表达式3){
	表达式4;
}

表达式1: 用于初始化循环变量初始值设置,在循环最开始时执行,且只执行一次
表达式2: 循环条件,满足则循环继续,否则循环结束
表达式3: 循环变量更新方式

实例1:打印 1-10 的数字

public static void main(String[] args) {
        for (int i = 1; i <= 10; i++) {
            System.out.println(i);
        }
}

🍤 运行结果:

在这里插入图片描述

实例2:计算 1-100 的和

 public static void main(String[] args) {
        int sum=0;
        for (int i = 1; i <= 100; i++) {
            sum += i;//sum=sum+i 累加
            //第一次:sum=0+1=1
            //第二次:sum=1+2=3
            //第三次:sum=3+3=6...
        }
        System.out.println("sum = " + sum);
    }

实例3:计算 5 的阶乘

public static void main(String[] args) {
        int result = 1;
        for (int i = 1; i <= 5; i++) {
            result *= i;
            //第一次:result=1*1=1
            //第二次:result=1*2=2
            //第三次:result=2*3=6...
        }
        System.out.println("result = " + result);
    }

实例4:计算 1!+2!+…+5!

public static void main(String[] args) {
        int sum = 0;
        //外循环:求和
        for (int i = 1; i <= 5; i++) {
            int tmp = 1;
            //内循环:计算每位数字的阶乘
            for (int j = 1; j <= i; j++) {
                tmp *= j;
            }
            sum += tmp;
        }
        System.out.println("sum = " + sum);
    }

注:

  • 和 if 类似,for 下面的语句可以不写 { } ,但是不写的时候只能支持一条语句,建议还是加上 { }。
  • 和 if 类似,for 后面的 { 建议和 while 写在同一行。
  • 和 if 类似,for 后面不要多写分号,否则可能导致循环不能正确执行。
  • 和while循环一样,结束单趟循环用continue,结束整个循环用break。

1.5 do…while循环

基本语法:

do{
	循环语句;
}while(循环条件);

先执行循环语句,再判定循环条件,循环条件成立则继续执行,否则循环结束。

实例: 打印 1-10 的数字

public static void main(String[] args) {
        int num = 1;//num 的初始条件
        do {
            System.out.println(num);
            num++;
        } while (num <= 10);//循环条件
    }

注:

  • do while 循环最后的分号不要忘记。
  • 一般 do while 很少用到, 更推荐使用 for 和 while。
  • 无论是否满足循环条件,都会先执行一次循环语句。

2. 输入输出

2.1 输出到控制台

基本语法:

System.out.println(msg); // 输出一个字符串, 带换行
System.out.print(msg); // 输出一个字符串, 不带换行
System.out.printf(format, msg); // 格式化输出

println 输出的内容自带 \n,print 不带 \n。(\n:换行)
printf 的格式化输出方式和 C 语言的 printf 是基本一致的。

代码示例:

public static void main(String[] args) {
	System.out.println("hello world");//直接打印 hello world
	int x = 10;
	System.out.printf("x = %d\n", x);//打印 x=10
}

格式化字符串

转换符类型举例结果
d十进制整数(“%d”,100)100
x十六进制整数(“%x”,100)64
o八进制整数(“%o”,100)144
f定点浮点数(“%f”,100f)100.000000
s字符串(“%s”,100)100
c字符(“%c”,‘1’)1
b布尔值(“%b”,100)true
%百分号(“%.2f%%”,2/7f)0.29%

2.2 从键盘输入

使用 Scanner 读取字符串/整数/浮点数

import java.util.Scanner; // 需要导入 util 包

public class Cycle_logitic {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);//输入,sc 由用户自己定义
        
        System.out.println("请输入你的姓名:");//输出
        String name = sc.nextLine();
        
        System.out.println("请输入你的年龄:");
        int age = sc.nextInt();
        
        System.out.println("请输入你的工资:");
        float salary = sc.nextFloat();
        
        System.out.println("你的信息如下:");
        System.out.println("姓名: "+name+"\n"+"年龄:"+age+"\n"+"工资:"+salary);
        sc.close(); // 注意, 要记得调用关闭方法
    }

🍤 运行结果:

在这里插入图片描述

使用 Scanner 循环读取 N 个数字,并求取其平均值

 public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int sum = 0;
        int num = 0;
        while (sc.hasNextInt()) {
            int tmp = sc.nextInt();//输入
            sum += tmp;//求和
            num++;
        }
        //输出
        System.out.println("sum = " + sum);
        System.out.println("avg = " + sum / num);//计算均值
        sc.close();
    }

🍤 运行结果:

在这里插入图片描述

🎊彩蛋

猜数字游戏

玩法:玩家随便输入1-100以内的整数,计算机会提示你是否猜对,如果没猜对,会告诉玩家是猜大了还是猜小了,然后用户继续猜数,直到成功。

程序设计关键:

  • 如何设置 1-100 以内的随机数
  • 判断随机数与用户输入的值的大小
  • 在猜对前,用户如何循环输入数字
  • 猜对后又如何结束循环

1. 在 Java 中设置随机数需要用到一个包:

import java.util.Random;

如果想要控制在 100 以内,代码实现是:

Random random = new Random(); // 默认随机种子是系统时间
int toGuess = random.nextInt(100);//设置范围:[0-100)+1

2. 用户输入数字:

上文已经总结过,如何输入一个数字。用户输入时也需要一个包:

import java.util.Scanner;
//实现输入数字
Scanner sc = new Scanner(System.in);//这里的 sc 由用户自定义

3. 判断用户输入的数字大小:

这里我们用 if 语句处理:

int num = sc.nextInt();//将输入的数字赋给 num
if (num < toGuess) {
	System.out.println("低了");
} else if (num > toGuess) {
	System.out.println("高了");
} else {
	System.out.println("猜对了");
break;//跳出循环
}

4. 然后我们将代码整合一下:

import java.util.Scanner;
import java.util.Random;
public static void main(String[] args) {
        Random random = new Random(); // 默认随机种子是系统时间
        Scanner sc = new Scanner(System.in);
        int toGuess = random.nextInt(100);
        while (true) {
            System.out.println("请输入要输入的数字: (1-100)");
            int num = sc.nextInt();
            if (num < toGuess) {
                System.out.println("低了");
            } else if (num > toGuess) {
                System.out.println("高了");
            } else {
                System.out.println("猜对了");
                break;
            }
        }
        sc.close();
    }

🍤 运行结果:

在这里插入图片描述
这只是简易版的猜数字游戏,你还可以用 switch 语句去设置一个菜单选项控制游戏的开始等等功能,去美化你的游戏


在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/808661.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

无涯教程-jQuery - Scale方法函数

Scale 效果可以与show/hide/toggle一起使用。这会使元素缩小或增长一个百分比因子。 Scale - 语法 selector.hide|show|toggle( "scale", {arguments}, speed ); 这是所有参数的描述- direction - 方向。可以是"both"&#xff0c;"垂…

【UE5】快速认识入门

目录 &#x1f31f;1. 快速安装&#x1f31f;2. 简单快捷键操作&#x1f31f;3. 切换默认的打开场景&#x1f31f;4. 虚幻引擎术语 &#x1f31f;1. 快速安装 进入Unreal Engine 5官网进行下载即可&#xff1a;UE5 &#x1f4dd;官方帮助文档 打开后在启动器里创建5.2.1引擎…

Optitrack下飞控刷px4固件并进行参数配置(视觉vision定位适用)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一:寻找固件二&#xff1a;QGC配置参数2.1&#xff1a;飞控初始化配置2.2&#xff1a;利用视觉定位作为位置反馈 三&#xff1a;PID调试/飞行日志查看 前言 参…

WIZnet W6100-EVB-Pico DHCP 配置教程(三)

前言 在上一章节中我们讲了网络信息配置&#xff0c;那些网络信息的配置都是用户手动的去配置的&#xff0c;为了能跟电脑处于同一网段&#xff0c;且电脑能成功ping通板子&#xff0c;我们不仅要注意子网掩码&#xff0c;对于IP地址主机位和网络位的划分&#xff0c;而且还要注…

级联选择框

文章目录 实现级联选择框效果图实现前端工具版本添加依赖main.js导入依赖级联选择框样式 后端数据库设计 实现级联选择框 效果图 实现 前端 工具版本 node.js v16.6.0vue3 级联选择框使用 Element-Plus 实现 添加依赖 在 package.json 添加依赖&#xff0c;并 npm i 导入…

【RTT驱动框架分析01】-pin/gpio驱动分析

0gpio使用测试 LED测试 #define LED1_PIN GET_PIN(C, 1) void led1_thread_entry(void* parameter) {rt_pin_mode(LED1_PIN, PIN_MODE_OUTPUT);while(1){rt_thread_delay(50); //delay 500msrt_pin_write(LED1_PIN, PIN_HIGH);rt_thread_delay(50); //delay 50…

漏洞发现-操作系统之漏洞探针类型利用修复(42)

主要包括四个部分&#xff0c; 系统漏洞发现的的意义&#xff1a;应用是基于操作系统的&#xff0c;针对的操作系统&#xff0c;如果漏洞本身就有问题&#xff0c;就不需要对特定的网站特定的漏洞寻找&#xff0c;因为网站是寄生在服务器上&#xff0c;而服务器丢失就可以帮助…

Sentinel dashboard的使用;Nacos保存Sentinel限流规则

Sentinel dashboard的使用 往期文章 Nacos环境搭建Nacos注册中心的使用Nacos配置中心的使用Sentinel 容灾中心的使用 参考文档 Sentinel alibaba/spring-cloud-alibaba Wiki GitHub 限流结果 下载sentinel-dashboard github地址&#xff1a;Sentinel/sentinel-dashboar…

【雕爷学编程】MicroPython动手做(13)——掌控板之RGB三色灯3

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

TypeScript基础篇 - TS模块

目录 模块的概念 Export 语法&#xff08;default&#xff09; Export 语法&#xff08;non-default&#xff09; import 别名 Type Export语法【TS】 模块相关配置项&#xff1a;module【tsconfig.json】 模块相关配置项&#xff1a;moduleResolution 小节总结 模块的…

手写vuex

vuex 基本用法 vuex是作为插件使用&#xff0c;Vue.use(vuex) 最后注册给new Vue的是一个new Vuex.Store实例 // store.js import Vue from vue import Vuex from vuexVue.use(Vuex) // Vue.use注册插件 // new Vuex.Store实例 export default new Vuex.Store({state: {},gette…

详解Mybatis之逆向工程问题

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 Maven版本&#xff1a;apache-maven-3.6.3 Mybatis版本&#xff1a;3.5.6 文章目录 一. Mybatis中的逆向工程是什么&#xff1f;二. 什么是MBG&#xff1f;三. MBG如何使用&#xff1…

Android Studio 启用设备远程调试配置完整步聚

启用手机设置->开发者选项-无线调试,然后选择允许 已启用后无线调试变成绿色 ,点击无线调试进入详情页面 点击Android Studio的Device Manager 下的WIFI图标 会弹出下图窗口 打开手机的开发者选项中的WIFI调试(无线调试)下的使用二维码配对设备进行扫描. 设备配对成功后手机…

JDBC Common Connection Problems

连接问题 Access denied for user ‘root’‘localhost’ (using password: YES) 第一种情况 问题描述 环境&#xff1a;IDEA 2021.1 windows11 mysql8.0 已知条件&#xff1a;1.已正常安装数据库2.无法通过CMD输入mysql -u root -p 密码进入数据库3.无法通过Navicat进入4…

2023-07-29:给你一个由数字组成的字符串 s,返回 s 中独特子字符串数量。 其中的每一个数字出现的频率都相同。

2023-07-29&#xff1a;给你一个由数字组成的字符串 s&#xff0c;返回 s 中独特子字符串数量。 其中的每一个数字出现的频率都相同。 答案2023-07-29&#xff1a; 大体步骤如下&#xff1a; 1.初始化变量base为固定值1000000007&#xff0c;用于计算哈希码。 2.创建一个空…

InnoDB引擎底层逻辑讲解——架构之内存架构

1.InnoDB引擎架构 下图为InnoDB架构图&#xff0c;左侧为内存结构&#xff0c;右侧为磁盘结构。 2.InnoDB内存架构讲解 2.1 Buffer Pool缓冲池 2.2 Change Buffer更改缓冲区 2.3 Adaptive Hash Index自适应hash索引 查看自适应hash索引是否开启&#xff1a; show variable…

qt截图软件中画箭头代码原理

截图工具中&#xff0c;需要画一个指向箭头&#xff0c; 该箭头的形状解析示意图如下所示&#xff0c; 对应的qt代码如下&#xff1a; // 画出一个箭头线&#xff0c;主要是算出这几个点。 // 这个箭头形状是这样的&#xff0c;胖嘟嘟的那种&#xff0c;但是出发点是一个细的 Q…

机器学习深度学习——权重衰减

&#x1f468;‍&#x1f393;作者简介&#xff1a;一位即将上大四&#xff0c;正专攻机器学习的保研er &#x1f30c;上期文章&#xff1a;机器学习&&深度学习——模型选择、欠拟合和过拟合 &#x1f4da;订阅专栏&#xff1a;机器学习&&深度学习 希望文章对你…

教雅川学缠论04-笔

笔由3部分组成&#xff1a; 顶分型K线底分型&#xff0c;或者 底分型K线顶分型 注意&#xff1a;笔加一起至少7根K线&#xff0c;因为一个底分型至少3根&#xff0c;K先至少1个&#xff0c;顶分型至少3根 下图中红色线段就是一个标准的笔&#xff0c;它始于一个底分型&#xff…

❤️创意网页:创建更炫酷的动态网页——彩色数字(1到9)粒子动画

✨博主&#xff1a;命运之光 &#x1f338;专栏&#xff1a;Python星辰秘典 &#x1f433;专栏&#xff1a;web开发&#xff08;简单好用又好看&#xff09; ❤️专栏&#xff1a;Java经典程序设计 ☀️博主的其他文章&#xff1a;点击进入博主的主页 前言&#xff1a;欢迎踏入…