【JavaSE】-4-单层循环结构

回顾

运算符:

算术 ++ --、逻辑 && & || |、比较 ==、三元 、赋值 =

int i = 1;
i++;
j = i++; //j=2 i=3
syso(--j+"-----"+i++)  //1  3 

选择结构

if(){}
if(){}else{}
if(){}else if(){}else if(){}else{}
//支持byte、short、int 
//支持char
//支持枚举
//从jdk8开始 支持String字符串类型
switch(表达式){}

循环结构

循环目的:实现某一块代码多次重复执行。

for循环

for(表达式一;表达式二;表达式三){//循环体
}

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

示例:

/** 需求:在控制台打印出所有的水仙花数。* 水仙花数: 是一个三位数,* 水仙花数的个位、十位、百位数字的立方之和等于原数。*/for(int i=100;i<1000;i++) {int g = i%10; int b = i/100;//121int s = i/10%10;if(g*g*g + b*b*b + s*s*s == i) {System.out.print(i+"  ");}		}
/** 1. 需求:数7游戏。从1到100(不含100), * 如果数是7的倍数或者包含7输出“过”,否则输出数字本身。*/for(int i=1;i<100;i++) { //65//7的倍数 i%7==0//包含7  个位i%10==7    十位i/10==7if(i%7==0 || i%10==7 || i/10==7) {System.out.print("过 ");}else {System.out.print(i+" ");}}

for循环变形及死循环

for(表达式1;表达式2;表达式3){循环体
}

代码:

	public static void main(String[] args) {for( ; ; ) {System.out.println("hello world");}System.out.println("end");//这行代码永远执行不到}

上面的示例,没有任何语句控制循环的结束。所以会无限打印hello world,导致循环后面的代码永远执行不到。

注意:如果程序中出现死循环,Eclipse会报错,不允许你执行。

代码:

	public static void main(String[] args) {for(int i = 0 ; i != 10 ; i += 3 ) {System.out.println("hello world");}System.out.println("end");//这行代码永远执行不到}

上面的示例,虽然表达式完整,但是 i != 10会永远为真,因此也是一个死循环。导致for循环后面的代码无法执行

代码:

//		int i ;
//		for(i=1;;) {
//			
//		}//		int i = 1;
//		for(;;) {
//			System.out.println(i);
//		}//		for(int i = 1;i < 10;i--) {
//			System.out.println(i);
//		}
	int i = 1;for(;i < 10;) {  //不会发生死循环System.out.println(i++);}

while循环

do…while循环

Random随机数

random.nextInt(3); // 得到的是一个 [0,3)的数值

随机数的规律:要想产生一个[min, max]之间的随机数。

int num = random.nextInt(max - min + 1) + min;

随机数的规律:要想产生一个[min, max) 之间的随机数。

int num = random.nextInt(max - min) + min;

随机数范围

[0,10]
[0,10)
[10,15]
(10,15]
Random r = new Random();//生成boolean类型随机数boolean flag = r.nextBoolean();//生成int范围的随机数int num1 = r.nextInt();//生成double类型的随机数double d1 = r.nextDouble();//指定范围 0<=num<3int num2 = r.nextInt(3);//[0,3)//生成一个随机数  0<=num<=3int num3 = r.nextInt(4);//生成一个随机数  5<=num<10  //5  [0-5)//r.nextInt(10-5)+5  r.nextInt(max-min)+minint num5 = r.nextInt(5)+5;//生成一个[15-20)之间的随机数
//		for(int i=0;i<10;i++) {
//			int num6 = r.nextInt(20-15)+15;
//			System.out.println(num6);
//		}//生成一个[15-20]之间的随机数 r.nextInt(max-min+1)+minfor(int i=0;i<10;i++) {System.out.print(r.nextInt(20-15+1)+15+"  ");}

示例:

//产生5个[10, 80]之间的随机数,输出产生的数,并求出最大的随机数。
//记录最大值出现的下标(第一次循环 ,下标为0,第二次为1....) 
Random r = new Random();
//最大值出现的索引下标
int maxIndex = 0;
int max = 0;
int min = 80;
int sum = 0;
for(int i=0;i<5;i++) {int num = r.nextInt(71)+10;System.out.print(num+" ");maxIndex = (num>max) ? i : maxIndex;max = num>max ? num : max;min = num<min ? num : min;sum += num;
}
System.out.println("最大值是:"+max +" 最小值是:"+min +" 总和:"+sum);
System.out.println("最大值的索引下标是:"+maxIndex);

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MybatisX插件使用

Mybatis X插件 MybatisX 是一款基于 IDEA 的快速开发插件&#xff0c;为效率而生。MybatisX官网&#xff1a;https://baomidou.com/pages/ba5b24/#%E5%8A%9F%E8%83%BD安装方法&#xff1a;打开 IDEA&#xff0c;进入 File -> Settings -> Plugins&#xff0c;输入 mybat…

SpringBoot监听器解析

监听器模式介绍 监听器模式的要素 事件监听器广播器触发机制 SpringBoot监听器实现 系统事件 事件发送顺序 监听器注册 监听器注册和初始化器注册流程类似 监听器触发机制 获取监听器列表核心流程: 通用触发条件: 自定义监听器实现 实现方式1 实现监听器接口: Order(1) …

Linux超简单部署个人博客

1 安装halo 1.1 切换到超级用户 sudo -i 1.2 新建halo文件夹 mkdir ~/halo && cd ~/halo 1.3 编辑docker-compose.yml文件 vim ~/halo/docker-compose.yml 英文输入法下&#xff0c;按 i version: "3"services:halo:image: halohub/halo:2.10container_…

【资深硬件工程师总结-千兆以太网设计指南】

文章目录 01通用PCB布线指南02标志焊盘中的接地过孔区示例03EMI注意事项04ESD注意事项 资深硬件工程师总结-千兆以太网设计指南 本应用笔记旨在帮助客户使用Microchip的10/100/1000 Mbps以太网器件系列设计PCB。本文档提供有关PCB布线的建 议&#xff0c; PCB 布线是保持信号完…

机器学习第12天:聚类

文章目录 机器学习专栏 无监督学习介绍 聚类 K-Means 使用方法 实例演示 代码解析 绘制决策边界 本章总结 机器学习专栏 机器学习_Nowl的博客-CSDN博客 无监督学习介绍 某位著名计算机科学家有句话&#xff1a;“如果智能是蛋糕&#xff0c;无监督学习将是蛋糕本体&a…

【C++】vector的介绍与使用

&#x1f9d1;‍&#x1f393;个人主页&#xff1a;简 料 &#x1f3c6;所属专栏&#xff1a;C &#x1f3c6;个人社区&#xff1a;越努力越幸运社区 &#x1f3c6;简 介&#xff1a;简料简料&#xff0c;简单有料~在校大学生一枚&#xff0c;专注C/C/GO的干货分…

分享-Spss下载含spss25.spss26.spss27等版本

为了学习spss买的&#xff0c;分享安装程序给大家 SPSS 27是一款用于统计分析和数据挖掘的软件&#xff0c;以下是SPSS 27的功能介绍和配置建议&#xff1a; 功能介绍&#xff1a; 数据管理&#xff1a;SPSS 27可以对数据进行管理和清洗&#xff0c;包括数据输入、缺失值处理…

Python开发运维:Celery连接Redis

目录 一、理论 1.Celery 二、实验 1.Windows11安装Redis 2.Python3.8环境中配置Celery 三、问题 1.Celery命令报错 2.执行Celery命令报错 3.Win11启动Celery报ValueErro错误 一、理论 1.Celery (1) 概念 Celery是一个基于python开发的分布式系统&#xff0c;它是简单…

【三维几何学习】自制简单的网格可视化软件 — Mesh Visualization

自制简单的网格可视化软件 — Mesh Visualization 引言一、整体框架1.1 三角形网格1.2 界面管理1.3 VTK可视化界面 二、核心源码2.1 三角形网格&#xff1a;TriMesh类2.2 界面Widget_Mesh_Manager2.3 VTK可视化2.4 main 引言 使用PyQt自制简单的网格可视化软件 - 视频展示 本是…

深信服技术认证“SCSA-S”划重点:信息收集

为帮助大家更加系统化地学习网络安全知识&#xff0c;以及更高效地通过深信服安全服务认证工程师考核&#xff0c;深信服特别推出“SCSA-S认证备考秘笈”共十期内容&#xff0c;“考试重点”内容框架&#xff0c;帮助大家快速get重点知识~ 划重点来啦 深信服安全服务认证工程师…

基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码

基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码 文章目录 基于材料生成算法优化概率神经网络PNN的分类预测 - 附代码1.PNN网络概述2.变压器故障诊街系统相关背景2.1 模型建立 3.基于材料生成优化的PNN网络5.测试结果6.参考文献7.Matlab代码 摘要&#xff1a;针对PNN神…

【Java 进阶篇】从Java对象到JSON:Jackson的魔法之旅

在现代的软件开发中&#xff0c;处理数据的能力是至关重要的。而当我们谈及数据格式时&#xff0c;JSON&#xff08;JavaScript Object Notation&#xff09;通常是首选。为了在Java中轻松地将对象转换为JSON&#xff0c;我们需要一种强大而灵活的工具。这时&#xff0c;Jackso…