第二章 Java基本语法(三)

本文主要内容:
循环结构、特殊关键字break和continue的使用,质数问题的优化

在这里插入图片描述
循环结构:Boolean类型

程序编写:
从键盘输入两个正整数m和n,找出他们的最大公约数和最小公倍数。

import java.util.Scanner;
public class test {public static void main(String[] args) {Scanner scan = new Scanner(System.in);System.out.println("请输入m:");int m = scan.nextInt();System.out.println("请输入n:");int n = scan.nextInt();for(int i = (m<n?m:n);i>0;i--) {if(m%i == 0 && n%i == 0) {System.out.println("最大公约数"+ i);break;    //一旦在循环中执行到break,就跳出当前循环}}for(int i = (m<n?n:m);i <= m*n;i++) {if(i%m == 0 && i%n == 0) {System.out.println("最小公倍数是:"+ i);break;}}}
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.说明:写while循环千万小心不要丢了迭代条件。一旦丢了迭代条件,很可能导致死循环。我们写程序要避免出现死循环
2.for循环和while循环是可以相互转化的。
3.区别:for循环和while循环的初始化条件部分的作用范围不同。
4.do-while循环至少会执行一次循环体!
5.多次执行时,do-while和while没区别
6.在开发中,使用for和while较多一些,较少使用do-while.
在这里插入图片描述

while(true)
说明:1.不在循环条件部分限制次数的结构:for(;;)或者while(true)
2.结束循环有几种方式?
方式一:循环条件部分返回false
方式二:在循环体中,执行break

嵌套循环的使用
1.嵌套循环:将一个循环结构A声明在另一个循环结构B的循环体中。
2.外层循环B、内层循环A

forint i = 0;i<=6;i++{for(int j = 0;j<=4;j++){System.out.print('*')}System.out.println();
}

在这里插入图片描述

说明:
1.内层循环结构执行一遍,只相当于外层循环执行了一次。
2.假设外层循环需要执行m次,内层循环需要执行n次,此时内层循环的循环体一共执行了m*n次

forint i = 0;i<=5;i++{for(int j = 0;j<=i;j++){System.out.print('*')}System.out.println();
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

九九乘法表
在这里插入图片描述
在这里插入图片描述

100以内所有的质数的输出
质数:也叫素数,只能被1和它本身整除的自然数。
方法一:

 for(int i = 2;i<=100000;i++) {boolean isFlag = true;  //标识i是否被j整除,一旦整除,修改其值for(int j = 2;j<i;j++) {   if(i%j == 0)isFlag = false;}if(isFlag == true) {System.out.println(i);}
}

对质数问题的优化
方法一:

public class test {public static void main(String[] args) {
/*优化前:15393优化一后:1609优化二后: 31*/long start = System.currentTimeMillis();   //获取系统时间的函数,计算了从1970年1月1日00:00:00到现在的时间int count = 0;boolean isFlag = true;for(int i = 2;i<=100000;i++) {//for(int j = 2;j<i;j++) {for(int j = 2;j<Math.sqrt(i);j++) {   //优化二,只需要除到开方的位置,对本身质数的自然数有效if(i%j == 0) {isFlag = false;break;  //优化一:只对本身非质数的自然数有效}}if(isFlag == true) {//System.out.println(i);count++;}isFlag = true;}long end = System.currentTimeMillis();System.out.println("质数的个数是" + count);System.out.print("运行时间:"+(end-start));}
}

方法二:

public class test {public static void main(String[] args) {long start = System.currentTimeMillis();   //获取系统时间的函数,计算了从1970年1月1日00:00:00到现在的时间int count = 0;label:for(int i = 2;i<=100000;i++) {for(int j = 2;j<=Math.sqrt(i);j++) {   //优化二,只需要除到开方的位置,对本身质数的自然数有效if(i%j == 0) {continue label;}}count++;}long end = System.currentTimeMillis();System.out.println("质数的个数是" + count);System.out.print("运行时间:"+(end-start));         }
}

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

break和continue默认跳出包括此关键字最近的一层循环
结束最外层循环的方法:

在这里插入图片描述

return的使用
在这里插入图片描述

完数:一个数恰好等于它的因子之和,这个数就称为完数,例如6=1+2+3

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

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

相关文章

用Priam设置Cassandra

前面已经解释了如何在AWS中设置Cassandra 。 所描述的设置有效&#xff0c;但在某些情况下可能还不够。 例如&#xff0c;它不能为您提供制作和还原备份的简便方法&#xff0c;添加新节点依赖于自定义python脚本&#xff0c;该脚本会随机选择一个种子。 因此&#xff0c;现在我…

Matlab入门(一)

MATLAB学习笔记 本系列主要内容来源&#xff1a;matlab官方付费课程的学习笔记 截图较多&#xff0c;之后更新会尽量增加文字说明 matlab简单常用的命令 数组 round:四舍五入函数。

MATLAB入门(二)

可以使用 plot 函数在一张图上绘制两个相同长度的向量。 plot(x,y)plot 函数接受一个附加参数。使用该参数&#xff0c;您可以通过在引号中包含不同符号的方式来指定与之对应的颜色、线型和标记样式。 plot(x,y,"r--o")以上命令将会绘制一条红色 虚线 (–)&#x…

Spring @Lazy批注用例

Spring框架几乎可以毫不费力地为您解决许多常见的编程问题&#xff0c;但是它的某些功能比其他功能鲜为人知。 在本文中&#xff0c;我们将仔细研究属于该组的Lazy批注。 阅读了几个示例之后&#xff0c;您应该能够将注释应用于日常开发任务。 1. 懒豆初始化 Spring的默认行为…

MATLAB入门(三)

求平均值 两种方法生成列向量 读取文件 将数据保存到小数点后两位 result round(M,2);将矩阵中的每个元素都三次方 x3 x.^3将矩阵中的数据按照升序排序 sort(data)创建一个行变量计算每一个列变量的平均值 avg mean(data)diff函数 Y diff(X) 计算沿大小不等于 1…

Java学习 第三章 数组(一)一维数组

第三章 数组 3-1 数组的概述 数组&#xff1a;多个相同类型数据按一定的顺序排列的集合&#xff0c;并使用一个名字命名&#xff0c;并通过编号的方式对这些数据进行统一管理。 数组相关概念&#xff1a; 数组名、下标&#xff08;索引、角标&#xff09;、元素、数组的长度 数…

mapreduce 算法_MapReduce算法–了解数据联接第1部分

mapreduce 算法在本文中&#xff0c;我们继续执行一系列实现算法的系列&#xff0c;该算法在使用MapReduce进行数据密集型文本处理中找到&#xff0c;这一次讨论数据联接。 虽然我们将讨论在Hadoop中联接数据的技术并提供示例代码&#xff0c;但在大多数情况下&#xff0c;您可…

几个有用的word小技巧,保准提升效率~

这几天改报告改到头秃。年底了&#xff0c;实验室各种项目在结项&#xff0c;作为一名研一新生&#xff0c;理所应当地承担起了体力活的工作。主要负责项目报告的研究背景调研、报告汇总、格式调整等。 格式调整&#xff0c;看起来非常简单的一项工作&#xff0c;却是最费时费…

Java 8:长期支持的堡垒

斯蒂芬科尔本 &#xff08; Stephen Colebourne &#xff09;的文章“ Java 9可以使用六个星期 ”开始&#xff0c;“ Java 9仅仅六个星期 就已过时。” Colebourne参考了Mark Reinhold博客文章“ Moving Java Forwarding Faster ”&#xff0c;并写道&#xff1a;“新的Java发…

我的2020(年终总结)

我的2020 2020对每个人来说可能都是极不平凡的一年&#xff0c;对我尤其是。这一年我整个的人心境发生了极大的变化。总结来说&#xff0c;有这么几件大事&#xff1a;复试、毕设、大学毕业、研究生开学、分手、再脱单、疫情在家。今天坐在实验室也不知道该干点什么&#xff0…

Java学习 第三章 数组(二)多维数组

多维数组的使用 由数组构成的数组 二维数组&#xff1a; ① 二维数组的声明和初始化 ② 如何调用数组的指定位置的元素 ③ 如何获取数组的长度 ④ 如何遍历数组 ⑤ 数组元素的默认初始化值 &#xff1a;见ArrayTest1.java 数组元素是整形&#xff1a;0 数组元素是浮点型&…

Spring Boot 2中的功能切换

无论您是否喜欢&#xff0c;软件开发都是一项协作活动。 整合工作一直被妖魔化&#xff0c;并被视为必不可少的邪恶。 有几种方法可以解决有效集成的挑战。 功能切换开关属于该组。 在本文中&#xff0c;您将在实践中看到如何在Spring Boot应用程序中使用功能切换&#xff08;也…

Java学习 第三章 数组(三)排序算法

** Java学习 第三章 数组&#xff08;三&#xff09;排序算法 ** 主要内容&#xff1a;排序算法、排序算法横向比较、Arrays工具类的使用、数组常见异常 1.数组中涉及到的常见算法&#xff1a;排序算法 1.1 排序算法分类&#xff1a;内部排序和外部排序 1.2 十大内部排序算…

【强化学习】一些网站整理

莫烦教程 https://mofanpy.com/tutorials/machine-learning/reinforcement-learning/ 博客园&#xff1a;刘建平Pinard https://www.cnblogs.com/pinard/category/1254674.html Deep-Q-Network 学习笔记 https://www.cnblogs.com/cjnmy36723/p/7017549.html 强化学习到深度强…

xmx java_为什么我的Java进程比Xmx消耗更多的内存?

xmx java你们有些人去过那里。 您已经在启动脚本中添加了-Xmx选项&#xff0c;并放松了下来&#xff0c;因为您知道Java进程将不会消耗比经过微调的选项所允许的更多的内存。 然后&#xff0c;您感到非常讨厌。 要么自己检查开发/测试框中的过程表&#xff0c;要么事情真的变坏…

卫星通信系统概述

卫星通信系统指通过在轨人造卫星作为中继站对无线电信号进行转发&#xff0c;实现地面及空间等用户之间信息传输的系统。卫星通信系统组成包括空间段及地面段&#xff0c;系统组成如图所示。其中空间段主要指在轨卫星、对在轨卫星进行操控的地面站&#xff0c;这些地面站主要实…

ElasticSearch初学者教程

1.简介 在此示例中&#xff0c;我们将演示如何使用Elasticsearch &#xff0c; Elasticsearch是一个基于Apache Lucene的分布式自由文本搜索和分析数据库引擎&#xff0c;具有一个基于maven的简单Java客户端。 在撰写本文时&#xff0c;我们将使用最新版本的Elasticsearch&…

博弈论与纳什均衡

三十分钟理解博弈论“纳什均衡” – Nash Equilibrium https://blog.csdn.net/xbinworld/article/details/50932559 纳什均衡(Nash equilibrium)及经典案例 https://blog.csdn.net/u010420283/article/details/83927742 论文&#xff1a; [1] 刘帅军. 卫星通信系统中动态资源…

Opnet入门

一、opnet快速入门 1.系统界面&文件菜单说明 2.常用文件名后缀及描述 3.Opnet建模层次 用户只有一种节点域模型 三、 OPNET Modeler网络仿真机制 1.事件的属性 每次点击next会出现以下界面&#xff1a; 2.事件的执行 调度型&#xff1a;按照正常程序调度事件 强制性&…

JSON的JUnit Hamcrest Matcher

这篇文章展示了如何编写JUnit测试来检查对象是否与JSON字符串匹配。 如果您要实现REST服务并想测试您的服务是否产生了预期的JSON响应&#xff0c;那么这一点很重要。 JSONassert是比较JSON对象的有用库。 首先&#xff0c;您必须将Java对象转换为JSON字符串&#xff08;例如&…