当前位置: 首页 > news >正文

【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.lryc.cn/news/239202.html

相关文章:

  • 12、人工智能、机器学习、深度学习的关系
  • webpack external 详解
  • 代码混淆不再愁:一篇掌握核心技巧
  • 华为云IoT与OpenHarmony深度协同,加速设备上鸿即上云【云驻共创】
  • 深入浅出 Linux 中的 ARM IOMMU SMMU I
  • 关于sqlModel 实现查询表单入参空值和模糊匹配一次性查询
  • 数据仓库架构之详解Kappa和Lambda
  • Banana Pi BPI-R3 Mini 开源路由器,也能拍出艺术美感
  • Django高级之-分页器
  • Vue-报错No “exports“ main defined in xx
  • EL-input添加双击或者单击事件
  • OpenCV快速入门:绘制图形、图像金字塔和感兴趣区域
  • Three.js相机模拟
  • Verilog基础:仿真时x信号的产生和x信号对于各运算符的特性
  • 穿越数据的迷宫-数据管理知识介绍
  • 3
  • 【python学习】基础篇-常用模块-multiprocessing模块:多进程
  • JAVA SQL
  • [Linux] 进程入门
  • 深入解析数据结构与算法之堆
  • 信息化项目质量保证措施
  • es的优势
  • sonar对webgoat进行静态扫描
  • opencv-重点知识
  • 上海亚商投顾:北证50指数大涨 机器人概念股掀涨停潮
  • 2.4G无线收发芯片 XL2400P使用手册
  • ZC序列理论学习及仿真
  • 利用OpenCV实现图片中导线的识别
  • 关于VITS和微软语音合成的效果展示(仙王的日常生活第1-2209章)
  • 普乐蛙VR航天航空巡展项目来到了第七站——绵阳科博会