本文主要内容:
循环结构、特殊关键字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

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

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

for(int 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

第二章 Java基本语法(三)相关推荐

  1. 使用java实现面向对象编程第二章_java面向对象编程——第二章 java基础语法

    第二章 java基础语法 1.java关键字 abstract boolean break byte case catch char class const continue default do d ...

  2. JavaSE入门0基础笔记 第二章Java基础语法

    JavaSE入门0基础笔记 第二章Java基础语法 1.运算符 1.1算术运算符 1.1.1运算符和表达式 1.1.2 算术运算符 1.1.3字符的"+"操作 1.1.4 字符串中 ...

  3. 尚硅谷Java入门视频教程第二章——Java基本语法

    尚硅谷Java入门视频教程第二章 第一章复习 课后习题 Java语言概述 第2章:Java基本语法 2.1 关键字和保留字 2.2 标识符(Identifier) 2.3 变量 2.3.1 变量基本概 ...

  4. 第二章 Java基本语法(一)

    本文主要内容: 关键字.标识符.变量.类型转换.进制转换.运算符 一.关键字 二.标识符 比如:类名,变量名,方法名,接口名,包名... 小技巧:直接在我的电脑输入cmd,就可以打开命令窗口 Java ...

  5. 第二章 Java基本语法(二)

    本文主要内容: 运算符.if-else.switch-case 一.位运算符 运算符之五:位运算符 每左移一位,相当于是在原来的基础上乘2. int i = 21; System.out.printl ...

  6. (Java零基础学习笔记)第二章 Java中的基本语法

    前言: 大家好! 我是BA unravel .如果你想和我一起学习JAVA,欢迎大家一起来学习这个世界上最好的语言! 学习目标: 一周掌握 Java 入门知识 学习内容: 1. 搭建 Java 开发环 ...

  7. 【JAVA SE】第二章 Java语法基础、数据类型、基本类型的字面值、基本类型的类型转换和运算规则

    第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符命名风格 文章目录 第二章 Java语法基础.数据类型.基本类型的字面值.基本类型的类型转换.运算规则和标识符 ...

  8. 第二章 java常用开发工具以及程序的编写

    2019独角兽企业重金招聘Python工程师标准>>> 第二章 java常用开发工具以及程序的编写 1. 程序的概念         2. java程序的开发的三个步骤        ...

  9. 描述java源程序构成_Java第二章Java程序设计

    <Java第二章Java程序设计>由会员分享,可在线阅读,更多相关<Java第二章Java程序设计(140页珍藏版)>请在人人文库网上搜索. 1.第2章 Java基本语法,2. ...

最新文章

  1. 七牛访谈|秒拍&小咖秀CTO汤力嘉:产品的生存系于技术
  2. android之下载416错误
  3. 使用JFreeChart在网页上绘制平滑曲线
  4. jsf 自定义属性_如何在JSF中实现自定义密码强度指示器
  5. Core IO学习心得
  6. C++ 不懂的地方 记录01
  7. OpenJudge NOI 1.4 20:求一元二次方程的根
  8. 使用原生js将轮播图组件化
  9. Linux内核分析第一周——计算机是如何工作的
  10. Python遍历文件夹获取文件名并写入excel
  11. Linux设备驱动程序学习(2)-调试技术
  12. 灵雀云 CTO 陈恺:从“鸿沟理论”看云原生,哪些技术能够跨越鸿沟?
  13. TFTPD32, 3CDaemon, FlashFxp
  14. 微信H5适配 解决微信调整字体大小导致Html5页面混乱
  15. windows11 任务栏 wifi、音量、电源还有通知无法左击弹出内容框
  16. Cesium: 如何将倾斜摄影数据转换为3dTiles格式
  17. 适合程序员的笔记本电脑
  18. 第16课:转型的难处
  19. 南卡和三星哪款蓝牙耳机音质好些?高颜值且音质好的蓝牙耳机测评
  20. java 绘图板_java绘图板

热门文章

  1. 道路交通安全违法行为记分管理办法的重大调整(2022版)
  2. css中的display属性值:table,table-row,table-cell
  3. 位运算和进制转换,反码补码
  4. php+ksort+返回true,PHP preg_replace函数
  5. python创建虚拟环境命令_Python创建虚拟环境报错
  6. 选择排序 自带时间复杂度分析
  7. 智能驾驶板块_智能驾驶股票有哪些?智能驾驶股票一览
  8. elementui ts vant冲突_如何解决vue多个ui框架css冲突?
  9. pat 乙级 1041 考试座位号(C++)
  10. 什么是单模光纤收发器,应用范围有哪些?