JavaSE学习day4_01 循环for,while,do...while
1. 循环高级
1.1 无限循环
for、while、do...while都有无限循环的写法。
最为常用的是while格式的。
因为无限循环是不知道循环次数的,所以用while格式的
代码示例:
while(true){}
1.2 跳转控制语句(掌握)
-
跳转控制语句(break)
-
跳出循环,结束循环
-
-
跳转控制语句(continue)
-
跳过本次循环,继续下次循环
-
-
注意: continue只能在循环中进行使用!而目前我们知道break仅只能在循环和switch中使用。
以下几个代码逻辑性较强,需认真看,认真思考。
练习1:逢7过
需求:
朋友聚会的时候可能会玩一个游戏:逢7过
游戏规则:从任意一个数字开始报数,当你要报的数字是包含7或者是7的倍数时都要说过:过
需求:使用程序在控制台打印出1-100之间的满足逢七必过规则的数据
代码示例:
public class LoopDemo4 {public static void main(String[] args) {//目标:听懂并且自己独立写出来//核心://不报数字的条件://个位是7 十位是7 7的倍数//三个条件只要满足一个,就不报数字 //游戏的规则//1 2 3 4 5 6 过 8 9 10 11 12 13 过 15 16 过 18 19 20 过... //循环的开始条件:1//结束条件:100for (int i = 1; i <= 100; i++) {//i依次表示这个范围之内的每一个数字if (i % 10 == 7 || i / 10 % 10 == 7 || i % 7 == 0) {System.out.println("过");continue;}System.out.println(i);} } }
练习2:求平方根
需求:
键盘录入一个大于等于2的整数 x ,计算并返回 x 的 平方根 。
结果只保留整数部分 ,小数部分将被舍去 。
代码示例:
public class LoopDemo5 {public static void main(String[] args) {//目标:听懂思路并且自己独立写出来 //键盘录入10// 1 * 1 = 1 < 10// 2 * 2 = 4 < 10// 3 * 3 = 9 < 10// 4 * 4 = 16 > 10//说明:10的平方根在3~4之间。保留整数之后:3 //键盘录入20//1 * 1 = 1 < 20// 2 * 2 = 4 < 20// 3 * 3 = 9 < 20// 4 * 4 = 16 < 20// 5 * 5 = 25 > 20//说明:20的平方根在4~5之间,保留整数之后:4 //键盘录入40//1 * 1 = 1 < 40// 2 * 2 = 4 < 40// 3 * 3 = 9 < 40// 4 * 4 = 16 < 40// 5 * 5 = 25 < 40// 6 * 6 = 36 < 40// 7 * 7 = 49 > 40//说明:40的平方根在6~7之间,保留整数之后:6 //思路://从1开始循环,拿着循环得到的每一个数求平方。//拿着结果,跟键盘录入的数字比较。//如果平方之后的结果 == 录入的数字 表示当前数字就是我们题目的结果//如果平方之后的结果 < 录入的数字 循环继续//如果平方之后的结果 > 录入的数字 表示前一个数字就是我们题目的结果//循环的开始条件:1//循环的结束条件:键盘录入的数字 //1.键盘录入数字Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数");int number = sc.nextInt();//2.循环找结果for (int i = 1; i <= number; i++) {//循环体if (i * i == number) {System.out.println(number + "的平方根为" + i);//如果已经找到了,那么后面就不需要再运行了,循环直接停止break;}else if(i * i > number){System.out.println(number + "的平方根为" + (i - 1));//如果已经找到了,那么后面就不需要再运行了,循环直接停止break;}}} }
练习3:求质数
需求:
键盘录入一个正整数 x ,判断该整数是否为一个质数。
代码示例:
public class LoopDemo6 {public static void main(String[] args) {//目标:听懂思路并且自己独立写出来 //质数:只能被1和本身整除的数。//7 是一个质数//13 是一个质数//8 不是一个质数//25 不是一个质数 //1.键盘录入一个正整数Scanner sc = new Scanner(System.in);System.out.println("请输入一个整数");int number = sc.nextInt();//2.利用循环进行判断//思路一:从1开始到本身number结束,在这个范围之内,有多少个数字能被键盘录入的number整除//如果只有两个,那么表示number是一个质数。 //思路二:从2开始到number-1结束,在这个范围之内,有多少个数字能被number整除//如果没有数字,那么表示number是一个质数。 //思路二循环的开始条件:2//循环的结束条件:number-1int count = 0;for (int i = 2; i < number; i++) {//i依次表示,2~ number-1 这个范围之内的每一个数字//要求的是,在这个范围之内,有多少个数字能被number整除if(number % i == 0){count++;}}//当循环结束之后,表示我们已经找到了,在2 ~ number-1 这个范围之内,有多少个数字能被number整除if(count == 0){System.out.println(number + "是一个质数");}else{System.out.println(number + "不是一个质数");}} }
以上几个代码是初学者比较难啃的几个编程思维,不懂得要好好琢磨。慢慢就懂了。
2. Random
Random产生随机数(掌握)
-
概述:
-
Random类似Scanner,也是Java提供好的API,内部提供了产生随机数的功能
-
API后续课程详细讲解,现在可以简单理解为Java已经写好的代码
-
-
-
使用步骤:
-
导入包
import java.util.Random;
-
创建对象
Random r = new Random();
-
产生随机数
int num = r.nextInt(10);
解释: 10代表的是一个范围,如果括号写10,产生的随机数就是0-9,括号写20,参数的随机数则是0-19
扩展点:如果第三步没有指定范围,那么会在int的取值范围中获取一个随机数。
-
-
示例代码:
import java.util.Random; public class RandomDemo {public static void main(String[] args) {//创建对象Random r = new Random();//用循环获取10个随机数for(int i=0; i<10; i++) {//获取随机数int number = r.nextInt(10);System.out.println("number:" + number);}//需求:获取一个1-100之间的随机数int x = r.nextInt(100) + 1;//仔细思考为什么这样写?很精妙System.out.println(x);} }
Random练习-猜数字小游戏
-
需求:
程序自动生成一个1-100之间的数字,使用程序实现猜出这个数字是多少?
当猜错的时候根据不同情况给出相应的提示
A. 如果猜的数字比真实数字大,提示你猜的数据大了
B. 如果猜的数字比真实数字小,提示你猜的数据小了
C. 如果猜的数字与真实数字相等,提示恭喜你猜中了
-
示例代码:
import java.util.Random; import java.util.Scanner; public class RandomTest {public static void main(String[] args) {//要完成猜数字的游戏,首先需要有一个要猜的数字,使用随机数生成该数字,范围1到100Random r = new Random();int number = r.nextInt(100) + 1;while(true) {//使用程序实现猜数字,每次均要输入猜测的数字值,需要使用键盘录入实现Scanner sc = new Scanner(System.in);System.out.println("请输入你要猜的数字:");int guessNumber = sc.nextInt();//比较输入的数字和系统产生的数据,需要使用分支语句。//这里使用if..else..if..格式,根据不同情况进行猜测结果显示if(guessNumber > number) {System.out.println("你猜的数字" + guessNumber + "大了");} else if(guessNumber < number) {System.out.println("你猜的数字" + guessNumber + "小了");} else {System.out.println("恭喜你猜中了");break;}}} }
运行如下:
猜数字小游戏扩展1:(掌握)
生成随机数的代码不能写在循环里面。
否则,每猜一次,都会产生一个新的随机数。
猜数字小游戏扩展2:(了解)
很多游戏中,都会有保底机制。
假设,在猜数字小游戏中,三次猜不中就触发保底机制
代码示例:
import java.util.Random; import java.util.Scanner; public class RandomDemo2 {public static void main(String[] args) {//分析://1.生成一个1-100之间的随机数字Random r = new Random();//扩展1:生成随机数的代码,不能写在循环里面,否则每一次都会生成一个新的随机数//扩展2:保底机制3次//定义变量记录猜的次数int count = 0;int number = r.nextInt(100) + 1;System.out.println(number);//2.使用键盘录入的方式去猜Scanner sc = new Scanner(System.in);while (true) {System.out.println("请输入你要猜的数字");int guessNumber = sc.nextInt();//每猜一次,count就++count++;//判断当前是第几次//如果达到了保底,直接提示猜中了if(count == 3){System.out.println("猜中了");break;}//3.拿着键盘输入的数字 跟 随机数比较判断if (guessNumber > number) {System.out.println("大了");} else if (guessNumber < number) {System.out.println("小了");} else {System.out.println("猜中了");break;}} } }
注意: 这里回顾以下,之前在第二天讲的idea有一个设置是自动导包设置,不知道大家还有没有印象,这里就用到了,我们在写代码
Random r = new Random();
的时候,可能你不知道这个类在哪个包,但是我们设置了自动导包,因此文件头部会自动给我们填充上
import java.util.Random;
这就是自动导包设置的好处。
相关文章:

JavaSE学习day4_01 循环for,while,do...while
1. 循环高级 1.1 无限循环 for、while、do...while都有无限循环的写法。 最为常用的是while格式的。 因为无限循环是不知道循环次数的,所以用while格式的 代码示例: while(true){} 1.2 跳转控制语句(掌握) 跳转控制语句&…...
C/C++中的static关键字
概述在C/C中都有static关键字的使用,可以分别修饰变量和函数,分为静态变量【静态成员】、静态成员函数。2. static用法概况静态变量的作用范围在一个文件内,程序开始时分配空间,结束时释放空间,默认初始化为0ÿ…...

67 自注意力【动手学深度学习v2】
67 自注意力【动手学深度学习v2】 深度学习学习笔记 学习视频:https://www.bilibili.com/video/BV19o4y1m7mo/?spm_id_fromautoNext&vd_source75dce036dc8244310435eaf03de4e330 给定长为n 的序列,每个xi为长为d的向量,自注意力将xi 既当…...

电子学会2022年12月青少年软件编程(图形化)等级考试试卷(二级)答案解析
青少年软件编程(图形化)等级考试试卷(二级) 一、单选题(共25题,共50分) 1. 一个骰子,从3个不同角度看过去的点数如图所示,请问5的对面是什么点数?( ) …...

关于链表中插入结点的操作……
服了,好久没敲链表了,这都忘了 newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur->next newnode; newnode->next cur->next; cur-…...

【项目精选】百货中心供应链管理系统
点击下载源码 近年来,随着计算机技术的发展,以及信息化时代下企业对效率的需求,计算机技术与通信技术已经被越来越多地应用到各行各业中去。百货中心作为物流产业链中重要的一环,为了应对新兴消费方式的冲击,从供货到销…...

Qt优秀开源项目之十六:SQLite数据库管理系统—SQLiteStudio
首先,感谢CSDN官方认可 SQLiteStudio是一款开源、跨平台(Windows、Linux和MacOS)的SQLite数据库管理系统。 github地址:https://github.com/pawelsalawa/sqlitestudio 官网:https://sqlitestudio.pl/ 特性很多…...

Python __doc__属性:查看文档
在使用 dir() 函数和 __all__ 变量的基础上,虽然我们能知晓指定模块(或包)中所有可用的成员(变量、函数和类),比如:import string print(string.__all__)程序执行结果为:[ascii_lett…...

电子科技大学操作系统期末复习笔记(一):操作系统概述
目录 前言 操作系统概述 操作系统的目标与功能 操作系统的定义 目标 功能 操作系统的历史 单用户系统 简单批处理系统 多道批处理系统 分时系统 个人电脑 → 分布式系统 → 互联网时代 → 移动计算时代 → ...... 实时系统 操作系统的基本特征 并发 共享 虚拟…...
[实践篇]13.20 Qnx进程管理slm学习笔记(三)
【QNX Hypervisor 2.2用户手册】目录(完结) 4.2 模块 我们可以将组件组合成一个模块。模块中的进程可以组成一个子系统,也可以用于建立一组系统状态,例如基本操作和各种更高级别操作。注意,必须命名模块,以便可以在内部引用它们。而且每个模块必须描述成一个元素,形势如…...

冰冰学习笔记:多线程
欢迎各位大佬光临本文章!!! 还请各位大佬提出宝贵的意见,如发现文章错误请联系冰冰,冰冰一定会虚心接受,及时改正。 本系列文章为冰冰学习编程的学习笔记,如果对您也有帮助,还请各位…...

补充一些前端面试题
javascript有哪些库指路>js中的库uniapp和vue有什么区别什么是uniappuni-app(uni,读you ni,是统一的意思)是一个使用Vue.js开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web&#…...

七大设计原则之单一职责原则应用
目录1 单一职责原则介绍2 单一职责原则应用1 单一职责原则介绍 单一职责(Simple Responsibility Pinciple,SRP)是指不要存在多于一个导致类变更的原因。假设我们有一个 Class 负责两个职责,一旦发生需求变更,修改其中…...
[USACO23JAN] Leaders B
题面翻译 题面描述 FJ 有 NNN 头奶牛,每一头奶牛的品种是根西岛 G 或荷斯坦 H 中的一种。 每一头奶牛都有一个名单,第 iii 头奶牛的名单上记录了从第 iii 头奶牛到第 EiE_iEi 头奶牛的所有奶牛。 每一种奶牛都有且仅有一位“领导者”,对…...

C++模板初阶
C模板初阶泛型编程函数模板概念函数模板格式函数模板原理函数模板的实例化模板参数的匹配原则类模板类模板的定义格式类模板的实例化泛型编程 我们前面学习了C的函数重载功能,那么我们如何实现一个通用的交换函数呢,比如:我传入int就是交换intÿ…...

文献阅读:Scaling Instruction-Finetuned Language Models
文献阅读:Scaling Instruction-Finetuned Language Models 1. 文章简介2. 实验 1. 数据集 & 模型 1. 数据集考察2. 使用模型 2. scale up对模型效果的影响3. CoT对模型效果的影响4. 不同模型下Flan的影响5. 开放接口人工标注指标 3. 结论 文献链接:…...
gpt草稿
ChatgptWhatChatGPT(全名:Chat Generative Pre-trained Transformer [2])是由OpenAI开发的一个人工智能聊天机器人程序,于2022年11月推出。该程序使用基于GPT-3.5架构的大型语言模型并通过强化学习进行训练。ChatGPT里面有两个词&…...
mysal第三次作业
1、显示所有职工的基本信息。 2、查询所有职工所属部门的部门号,不显示重复的部门号。 3、求出所有职工的人数。 4、列出最高工和最低工资。 5、列出职工的平均工资和总工资。 6、创建一个只有职工号、姓名和参加工作的新表,名为工作日期表…...

分页和mmap
文章目录一、内存分页1、基本概念2、分页机制下,虚拟地址和物理地址是如何映射的?3、快表(TLB)二、mmap基本原理和分类一、内存分页 1、基本概念 CPU并不是直接访问物理内存地址,而是通过虚拟地址空间来间接的访问物理内存地址。 页&#x…...

C++之异常处理
异常异常是面向对象语言处理错误的一种方式。当一个函数出现自己无法处理的错误时,可以抛出异常,然后输的直接或者间接调用者处理这个错误。语法捕获全部的异常try {//可能抛出异常的代码//throw异常对象 } catch(...) {//不管什么异常,都在这…...

汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...

Mac软件卸载指南,简单易懂!
刚和Adobe分手,它却总在Library里给你写"回忆录"?卸载的Final Cut Pro像电子幽灵般阴魂不散?总是会有残留文件,别慌!这份Mac软件卸载指南,将用最硬核的方式教你"数字分手术"࿰…...
反射获取方法和属性
Java反射获取方法 在Java中,反射(Reflection)是一种强大的机制,允许程序在运行时访问和操作类的内部属性和方法。通过反射,可以动态地创建对象、调用方法、改变属性值,这在很多Java框架中如Spring和Hiberna…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

基于IDIG-GAN的小样本电机轴承故障诊断
目录 🔍 核心问题 一、IDIG-GAN模型原理 1. 整体架构 2. 核心创新点 (1) 梯度归一化(Gradient Normalization) (2) 判别器梯度间隙正则化(Discriminator Gradient Gap Regularization) (3) 自注意力机制(Self-Attention) 3. 完整损失函数 二…...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
怎么让Comfyui导出的图像不包含工作流信息,
为了数据安全,让Comfyui导出的图像不包含工作流信息,导出的图像就不会拖到comfyui中加载出来工作流。 ComfyUI的目录下node.py 直接移除 pnginfo(推荐) 在 save_images 方法中,删除或注释掉所有与 metadata …...

MacOS下Homebrew国内镜像加速指南(2025最新国内镜像加速)
macos brew国内镜像加速方法 brew install 加速formula.jws.json下载慢加速 🍺 最新版brew安装慢到怀疑人生?别怕,教你轻松起飞! 最近Homebrew更新至最新版,每次执行 brew 命令时都会自动从官方地址 https://formulae.…...

手机平板能效生态设计指令EU 2023/1670标准解读
手机平板能效生态设计指令EU 2023/1670标准解读 以下是针对欧盟《手机和平板电脑生态设计法规》(EU) 2023/1670 的核心解读,综合法规核心要求、最新修正及企业合规要点: 一、法规背景与目标 生效与强制时间 发布于2023年8月31日(OJ公报&…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing
Muffin 论文 现有方法 CRADLE 和 LEMON,依赖模型推理阶段输出进行差分测试,但在训练阶段是不可行的,因为训练阶段直到最后才有固定输出,中间过程是不断变化的。API 库覆盖低,因为各个 API 都是在各种具体场景下使用。…...