循环结构

在某些条件满足的情况下,反复执行特定代码的功能。

循环语句分类

  • for 循环
  • while 循环
  • do-while 循环

FOR循环结构

for (①初始化部分;②循环条件部分;④迭代部分){③循环体部分;
}

执行过程:
①-②-③-④-②-③-④- …… -②

  • ②循环条件部分为boolean类型表达式,当值为false时,退出循环
  • ①初始化部分可以声明多个变量,但必须是同一个类型,用逗号分隔
  • ④可以有多个变量更新,用逗号分隔


eg:

class  ForTest{public static void main(String[] args) {for (int i = 1;i <= 5;i++ ){//i只在for循环内有效!System.out.println("Hello World!");}    //练习:int num = 1;for (System.out.print('a');num <= 3;System.out.print('c'),num++){//迭代条件有多条时,用“,”隔开。System.out.print('b');//abcbcbc}//例题:遍历100以内的偶数,输出所有偶数和,输出偶数个数int sum = 0;//记录所有偶数和int count = 0;//记录偶数个数for (int i = 1;i <= 100 ;i++){if (i % 2 == 0){System.out.println(i);sum += i;count++;}}System.out.println("总和为:" + sum);System.out.println("偶数个数为:" + count);}
}

FOR例题1
编写程序从1循环到150,并在每行打印一个值,另外在每个3的倍数行上打印出“foo”,在每个5的倍数行上打印“biz”,在每个7的倍数行上打印输出“baz”。

class ForTest1{public static void main(String[] args) {for (int i = 1;i <= 150;i++ ){System.out.print(i + "  ");if (i % 3 ==0){System.out.print("foo");}if (i % 5 == 0){System.out.print("biz");}if (i % 7 == 0){System.out.print("baz");}System.out.print("\n");}}
}

FOR例题2
题目:输入两个正整数m和n,求其最大公约数和最小公倍数。
比如:12和20的最大公约数是4,最小公倍数是60。
说明:break关键字的使用

import java.util.Scanner;
class ForTest{public static void main(String[] args){Scanner scan = new Scanner(System.in);System.out.println("请输入第一个正数:");int m = scan.nextInt();System.out.println("请输入第二个正数:");int n = scan.nextInt();//求最大公约数//1.获取两个数中较小值int min = (m <= n)? m : n;//2.遍历for (int i = min;i >= 1 ;i-- ){if(m % i == 0 && n % i == 0){System.out.println("最大公约数为:" + i);break;//一旦在循环中执行到break,就跳出循环。}}//求最小公倍数//1.获取两个数中较大值int max = (m >= n)? m : n;//2.遍历for (int i = max;i <= m * n ;i++ ){if(i % m == 0 && i % n == 0){System.out.println("最小公倍数为:" + i);break;//一旦在循环中执行到break,就跳出循环。}}}
}

While循环结构

①初始化部分
while(②循环条件部分){③循环体部分; ④迭代部分;
}

执行过程:
①-②-③-④-②-③-④-②-③-④-…-②

说明:

  • 注意不要忘记声明④迭代部分。否则,循环将不能结束,变成死循环。
  • for循环和while循环可以相互转换。

eg:

class WhileTest{public static void main(String[] args) {System.out.println("Hello World!");//遍历100以内的所有偶数int i = 1;while(i <= 100){if (i % 2 == 0){System.out.println(i);}i++;}
}

do-while循环结构

①初始化部分;
do{③循环体部分④迭代部分
}while(②循环条件部分);

执行过程:
①-③-④-②-③-④-②-③-④-…②

说明:
do-while循环至少执行一次循环体。

eg:

class DoWhileTest{public static void main(String[] args){//遍历100以内的所有偶数,计算所有偶数和以及个数int i = 1;int sum = 0;int count = 0;do{if (i % 2 == 0){System.out.println(i);sum += i;count++;}i++;}while (i <= 100);System.out.println("总和为" + sum);System.out.println("个数为" + count);}
}

循环结构练习1
从键盘读入个数不确定的整数,并判断读入的正数和负数的个数,输入为0时结束程序。

import java.util.Scanner;
class ForWhileTest{public static void main(String[] args){Scanner scan = new Scanner(System.in);int positiveNumber = 0;//记录正数个数int negativeNumber = 0;//记录负数个数for(;;){//while (true){ 效果相同int number = scan.nextInt();if (number > 0){positiveNumber++;}else if(number < 0){negativeNumber++;}else{break;//一旦为零,终止循环。}}System.out.println("输入正数为" + positiveNumber);System.out.println("输入负数为" + negativeNumber);}
}

说明

  • 最简单“无限” 循环格式:while(true) ,for( ; ; ) ,无限循环存在的原因是并不知道循环多少次,需要根据循环体内部某些条件,来控制循环的结束。
  • 结束循环的方式:
    - 1.循环条件返回false。
    - 2.在循环体中,执行break。

小白自学笔记——JAVA基础 2.9循环结构相关推荐

  1. 小白自学笔记——JAVA基础 2.8分支结构

    名词解释 流程控制语句是用来控制程序中各语句执行顺序的语句,可以把语句组合成能完成一定功能的小逻辑模块. 其流程控制方式采用结构化程序设计中规定的三种基本流程结构,即: 顺序结构 程序从上到下逐行地执 ...

  2. 小白自学笔记——JAVA基础 2.2变量

    变量概述 概念: - 内存中的一个存储区域 - 该区域的数据可以在同一类型范围内不断变化 - 变量是程序中最基本的存储单元,包含变量类型.变量名和存储值 作用 - 用于在内存中保存数据 变量的使用 j ...

  3. 小白自学笔记——JAVA基础 0.1Java语言概述

    我学习的是宋红康老师的视频,首先是课程大纲. 课程大纲 课程体系 第1章 Java语言概述 第2章 基本语法 第3章 数组 第4章 面向对象编程(上) 第5章 面向对象编程(中) 第6章 面向对象编程 ...

  4. 小白自学笔记——JAVA基础 2.10嵌套循环

    名词解释 将一个循环放在另一个循环体内,就形成了嵌套循环.其中,for ,while ,do-while均可以作为外层循环或内层循环. 实质上,嵌套循环就是把内层循环当成外层循环的循环体.当只有内层循 ...

  5. 小白自学笔记——JAVA基础 1.1常用的DOS文件

    今天开始自学JAVA第一课.看的是B站上宋红康老师的视频. 一 学习常用的DOS命令 在搜索栏输入'cmd'打开 eg1:打开D盘文件 [输入] D: eg2:列出当前文件夹下的所有文件 [输入] d ...

  6. 小白自学笔记——JAVA基础 2.5进制

    计算机中不同进制的使用说明 所有数字在计算机底层都以二进制形式存在. 对于整数,有四种表示方式: - 二进制(binary):0,1 ,满2进1.以0b或0B开头. - 十进制(decimal):0- ...

  7. 小白自学笔记——JAVA基础 3.1 一维数组

    名词解释 数组(Array),是多个相同类型数据按一定顺序排列的集合,并使用一个名字命名,并通过编号的方式对这些数据进行统一管理. 数组的常见概念 数组名 下标(或索引) 元素 数组的长度 数组的特点 ...

  8. 小白自学笔记——JAVA基础 1.2JAVA语言环境搭建

    我使用的是JAVA8版本. 名词解释 JDK--Java Development Kit(JAVA开发工具包) JRE--Java Runtime Environment(JAVA运行环境) JDK. ...

  9. 小白自学笔记——JAVA基础 2.12 项目一 家庭记账软件

    需求说明 模拟实现基于文本界面的<家庭记账软件>. 该软件能够记录家庭的收入.支出,并能够打印收支明细表. 假设家庭起始的生活基本金为10000元. 每次登记收入(菜单2)后,收入的金额应 ...

最新文章

  1. cli能记日志web不能php,异步日志输出方案
  2. android 是否允许打印debug级别日志的开关_Android学习——日志使用
  3. @bzoj - 4384@ [POI2015] Trzy wieże
  4. 一次编译libmono.so的记录
  5. 微信验证服务器是怎么回事,微信服务器认证为什么需要这么多参数?
  6. java调用outlook
  7. Community Server专题一:概述Community Server
  8. C语言*运算符和运算符
  9. 【BZOJ2655】calc,dp+拉格朗日插值法
  10. Linux系统LVM增加新硬盘实现根文件系统扩容
  11. 阿里涉足零售IoT的猜想
  12. EIGRP passive-interface
  13. python 可视化 词云图
  14. 蓝牙开发那些事儿(1)——从抓包数据开始
  15. 《软件体系结构原理、方法与实践》第二版期末考试复习总结
  16. windows下的_vimrc设置
  17. 算法与数据结构学习路线
  18. Contour Integral
  19. PLC是怎么工作和扫描的
  20. 华为手机通过ADB禁止系统更新和卸载自带软件

热门文章

  1. 解决‘Hint: If you want to see a list of allocated tensors when OOM happens, add ................‘
  2. HTC One X S720e 一键刷入boot.img教程
  3. DLL劫持注入技术分析、过各种游戏保护!让你做你爱做的事情!
  4. 解决关于win7共享文件连接数限制的问题
  5. 2023最新SSM计算机毕业设计选题大全(附源码+LW)之java美妆商城系统l5y41
  6. js 绝对等于 的各种情况 需要进行绝对等于比较的方法
  7. 远翔升压FP5207,外置MOS大功率升压芯片
  8. CrazyTalk 8安装注册教程
  9. css删除li 圆点_CSS 去除列表项li前面的小圆点
  10. ./gradlew :spring-oxm:compileTestJava 执行失败。