Day008 循环结构与breakcontinue - Java流程控制

news/2025/9/23 1:11:22/文章来源:https://www.cnblogs.com/zhuyouan/p/19106430
Day008 循环结构与break&continue - Java流程控制

Java流程控制

循环结构

(1)while循环

  • while是最基本的循环,只要布尔表达式为true,循环就会一直执行。
  • 除了少部分情况需要循环一直执行(比如服务器的请求响应监听等),大多数情况还是需要让循环停止下来的,这就需要一个让表达式失效的方式来结束循环
  • 循环条件一直为true就会造成无限循环(死循环),正常的业务编程中应该尽量避免死循环,因为会影响程序性能或者造成程序卡死崩溃。
  • 语法:
while(布尔表达式){//循环内容 
}
package com.feihong.struct;public class WhileDemo01 {public static void main(String[] args) {//int  i=0;while(i<100){i++;System.out.println(i);//输出到100停止}}
}
package com.feihong.struct;public class WhileDemo02 {public static void main(String[] args) {//while一直为true变成死循环while(true){//比如等待客户端连接,闹钟的定时检查等情况需要用这种方式}}
}
package com.feihong.struct;public class WhileDemo03 {//计算1+……+100public static void main(String[] args) {int num=0;int sum=0;while(num<=100){sum=sum+num;num++;}System.out.println(sum);//输出为:5050}
}

(2)do……while循环

  • 对于while语句而言,不满足条件则不能进入循环。但有时我们需要即使不满足条件,也至少执行一次。
  • do...while循环和while循环主要不同的是,do...while循环会至少执行一次。
do {//代码语句
}while(布尔表达式);
  • While先判断后执行,Do...While是先执行后判断。
package com.feihong.struct;public class DoWhileDemo01 {public static void main(String[] args) {//依旧是计算1+……+100int i=0;int sum=0;do {sum=sum+i;i++;}while(i<=100);System.out.println(sum);//输出为:5050}
}
package com.feihong.struct;public class DoWhileDemo02 {public static void main(String[] args) {int a=1;while (a<1){System.out.println(a);//没有输出,因为没有进入循环a++;}System.out.println("==========================================");do {System.out.println(a);a++;}while (a<1);//输出为:1,表明进了一次循环}
}

(3)For循环

  • For循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
  • for循环执行的次数是在执行前就确定的。
  • 语法:
for (初始化;布尔表达式;更新){//代码语句
}
  • 快捷输入for循环:

image-20250920004209215

image-20250920004417399

输入100.for,确定回车即可形成一个for循环。

package com.feihong.struct;public class ForDemo01 {public static void main(String[] args) {int a=1;//初始化条件while (a<=100){//条件判断System.out.println(a);//循环内容即循环体a+=1;//迭代,刷新条件以达到满足条件判断以停止循环}System.out.println("while循环结束");//输出为:1~100//for(初始条件;条件判断;迭代)for (int i=1;i<=100;i++){System.out.println(i);}System.out.println("for循环结束");//输出为:1~100/*关于for循环有几点说明:最先执行的初始化步骤,只可以声明一种类型,但可以初始化一个或多个循环控制变量,此句可以为空语句。即for (int i = 0; i < 100; i++){}其中的int i = 0部分可以为空,for (; i < 100; i++){}然后,检测布尔表达式的值如果为true,循环体会被执行。如果为false,循环终止,开始执行循环体后面的语句。for (int i = 0; i < 100; i++){}其中的i < 100部分也可以为空,for (; ; i++){}执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。再次检测布尔表达式,循环执行以上步骤。for (; ; ){}即无限循环,死循环*/}}
package com.feihong.struct;public class ForDemo02 {public static void main(String[] args) {//练习1:分别计算出0~100之间的奇数的和与偶数的和int oddSum =0;int evenSum=0;for (int i = 0; i < 100; i++) {if(i%2!=0){oddSum+=i;}else {evenSum+=i;}}System.out.println(oddSum);System.out.println(evenSum);}
}

练习1:分别计算出0~100之间的奇数的和与偶数的和

package com.feihong.struct;public class ForDemo03 {public static void main(String[] args) {//练习2:用while或for循环输出1000以内能被5整除的数,样式为每行3个for (int i = 0; i <= 1000; i++) {if(i%5==0){System.out.print(i+"\t");}if (i%(5*3)==0){System.out.println();//直接就换行了//或者System.out.println("\n");换行//System.out.println();输出完会换行。System.out.print();输出完不会换行}}}
}

练习2:用while或for循环输出1000以内能被5整除的数,样式为每行3个

package com.feihong.struct;public class ForDemo04 {public static void main(String[] args) {//练习3:打印九九乘法表/*样式为:1*1=12*1=2   2*2=43*1=3   3*2=6   3*3=94*1=4   4*2=8   4*3=12  4*4=165*1=5   5*2=10  5*3=15  5*4=20  5*5=256*1=6   6*2=12  6*3=18  6*4=24  6*5=30  6*6=367*1=7   7*2=14  7*3=21  7*4=28  7*5=35  7*6=42  7*7=498*1=8   8*2=16  8*3=24  8*4=32  8*5=40  8*6=48  8*7=56  8*8=649*1=9   9*2=18  9*3=27  9*4=36  9*5=45  9*6=54  9*7=63  9*8=72  9*9=81*///1.先把复杂的问题拆成小问题,第一列的表示方式:/*for (int i = 1; i <= 9; i++) {System.out.println(i+"*"+1+"="+i);}*//*输出为:1*1=12*1=23*1=34*1=45*1=56*1=67*1=78*1=89*1=9*///2.打出后面的其他几列,可以用到for循环的嵌套,即将第一列的for循环嵌套到新的for循环中:/*for (int j = 1; j <= 9; j++) {for (int i = 1; i <= 9; i++) {System.out.println(i+"*"+1+"="+i);}}*///这时只是第一列循环了九次,要让i随着j的变化而变化:/*for (int j = 1; j <= 9; j++) {for (int i = 1; i <= j; i++) {//int i=1 --->int i=jSystem.out.print(i+"*"+j+"="+(i*j)+"\t");}System.out.println();}*//*输出为:1*1=11*2=2   2*2=41*3=3   2*3=6  3*3=91*4=4   2*4=8  3*4=12 4*4=161*5=5   2*5=10 3*5=15 4*5=20 5*5=251*6=6   2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7   2*7=14 3*7=21 4*7=28 5*7=35 6*7=42 7*7=491*8=8   2*8=16 3*8=24 4*8=32 5*8=40 6*8=48 7*8=56 8*8=641*9=9   2*9=18 3*9=27 4*9=36 5*9=45 6*9=54 7*9=63 8*9=72 9*9=81*///System.out.print(j+"*"+i+"="+(i*j)+"\t");的效果与联系要求吻合/*输出为:1*1=12*1=2   2*2=43*1=3   3*2=6  3*3=94*1=4   4*2=8  4*3=12 4*4=165*1=5   5*2=10 5*3=15 5*4=20 5*5=256*1=6   6*2=12 6*3=18 6*4=24 6*5=30 6*6=367*1=7   7*2=14 7*3=21 7*4=28 7*5=35 7*6=42 7*7=498*1=8   8*2=16 8*3=24 8*4=32 8*5=40 8*6=48 8*7=56 8*8=649*1=9   9*2=18 9*3=27 9*4=36 9*5=45 9*6=54 9*7=63 9*8=72 9*9=81*///int i=j;i<=9;时的效果for (int j = 1; j <= 9; j++) {for (int i = j; i <= 9; i++) {//int i=1 --->int i=jSystem.out.print(i+"*"+j+"="+(i*j)+"\t");}System.out.println();}/*输出为:1*1=1   2*1=2  3*1=3  4*1=4  5*1=5  6*1=6  7*1=7  8*1=8  9*1=92*2=4   3*2=6  4*2=8  5*2=10 6*2=12 7*2=14 8*2=16 9*2=183*3=9   4*3=12 5*3=15 6*3=18 7*3=21 8*3=24 9*3=274*4=16  5*4=20 6*4=24 7*4=28 8*4=32 9*4=365*5=25  6*5=30 7*5=35 8*5=40 9*5=456*6=36  7*6=42 8*6=48 9*6=547*7=49  8*7=56 9*7=638*8=64  9*8=729*9=81*/}
}

练习3:打印九九乘法表,习题不是目的,重要的是要掌握复杂问题分析拆解的能力,对以后实现项目功能打好基础

(4)增强for循环

  • 这里只作了解,之后数组再重点使用
  • Java5引入的主要用于数组或集合的增强型for循环
  • 语法:
for(声明语句:表达式){//代码句子}
package com.feihong.struct;public class ForDemo05 {public static void main(String[] args) {int [] numbers={10,20,30,40,50};//定义了一个数组for (int i = 0;i<5;i++){System.out.println(numbers[i]);}System.out.println("====================================");//遍历数组的元素,及每次循环从数组numbers中取出输出一个数for (int x:numbers){System.out.println(x);}}
}

break & continue

  • break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环剩余的语句。(break也在switch语句中使用)
  • continue语句在循环语句中,用于终止某次循环过程,即将跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定。
package com.feihong.struct;public class BreakDemo01 {public static void main(String[] args) {int i=0;while (i<100){i++;System.out.print(i);if (i==30){break;//只是终止了程序中的循环,不影响程序接着往下运行}}System.out.println("\n"+"结束了");}/*输出为:123456789101112131415161718192021222324252627282930结束了*/
}
package com.feihong.struct;public class ContinueDemo01 {public static void main(String[] args) {int i=0;while (i<100){i++;if (i%10==0){System.out.println();continue;//continue之后的语句不执行了,但循环继续//System.out.print(1);//在continue之后,报错不可达到的语句}System.out.print(i+"\t");}/*输出为:1   2  3  4  5  6  7  8  911  12 13 14 15 16 17 18 1921  22 23 24 25 26 27 28 2931  32 33 34 35 36 37 38 3941  42 43 44 45 46 47 48 4951  52 53 54 55 56 57 58 5961  62 63 64 65 66 67 68 6971  72 73 74 75 76 77 78 7981  82 83 84 85 86 87 88 8991  92 93 94 95 96 97 98 99*/}
}

关于goto关键字(了解即可)

  • 尽管goto仍是Java的关键字,但语言中无法使用,但有使用类似功能的方法----带标签的break和continue。
  • 标签是指后面跟一个冒号的标识符,例如:“ label: ”
  • 对Java来说唯一用到标签的地方是在循环语句之前
package com.feihong.struct;public class GotoDemo {public static void main(String[] args) {//101~150之间所有的质数//指数是大于1的其他所有自然数中,没有除了1和它本身以外因数的自然数int count =0;outer: for (int i = 100; i < 150; i++) {//在之前定义一个名为outer的标签for (int j=2;j<i/2;j++){if (i%j==0){//需要他成立之后返回外部,就需要打标签continue outer;//表示停止运行之后的程序,并返回到outer继续循环}}System.out.print(i+"  ");}//不建议使用!}
}

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

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

相关文章

com域名和网站wordpress顶部提示

FOTA模块中OTA的知识点&#xff1a;1.测试过程中发现哪几类问题&#xff1f; 可能就是一个单键的ecu&#xff0c;比如升了一个门的ecu&#xff0c;他的升了之后就关不上&#xff0c;还有就是升级组合ecu的时候&#xff0c;c屏上不显示进度条。 2.在做ota测试的过程中&#xff…

模板网站的好处网络营销方案策划论文

中霖教育怎么样?中霖教育好吗? 中霖教育包括师资力量、课程设置、教学方法等都是经过不断完善来制定的&#xff0c;我们拥有专业且经验丰富的师资队伍&#xff0c;在教学过程中更注重个性化教学方式&#xff0c;针对每个学员的需求和学习情况制定专属的学习计划。 无论是在…

广西区建设厅网站小制作的制作过程

Posix在线文档&#xff1a; The Single UNIX Specification, Version 2 (opengroup.org) Linux系统中提供了两种不同接口的消息队列&#xff1a; POSIX消息队列。POSIX为可移植的操作系统接口。System V消息队列。System V 是 AT&T 的第一个商业UNIX版本(UNIX System III)的…

呼和浩特 的网站建设上海专业网站建设网

这是记录前端面试的话术集锦第十五篇博文——高频考点(React常考进阶知识点),我会不断更新该博文。❗❗❗ 1. HOC 是什么?相比 mixins 有什么优点? 很多人看到高阶组件(HOC)这个概念就被吓到了,认为这东西很难,其实这东西概念真的很简单,我们先来看一个例子: func…

如何做一名合格的网站人静态网页设计与制作

&#x1f308;个人主页&#xff1a;SKY-30 ⛅个人推荐&#xff1a;基于java提供的ArrayList实现的扑克牌游戏 |C贪吃蛇详解 ⚡学好数据结构&#xff0c;刷题刻不容缓&#xff1a;点击一起刷题 &#x1f319;心灵鸡汤&#xff1a;总有人要赢&#xff0c;为什么不能是我呢 &…

建立网站大概需要多长时间丹阳火车站片区规划

非类型模板参数 模板参数分为类型形参与非类型形参 。 类型形参即&#xff1a;出现在模板参数列表中&#xff0c;跟在 class 或者 typename 之类的参数类型名称 。 非类型形参&#xff0c;就是用一个常量作为类 ( 函数 ) 模板的一个参数&#xff0c;在类 ( 函数 ) 模板中可将…

网站专题怎么做呢广州页面制作公司

从 NS-10M 监听音箱到 MSP 系列和 HS 系列&#xff0c;雅马哈始终秉持忠实的设计理念&#xff0c;聚焦声学精度&#xff0c;为音频专家提供出色的平台&#xff0c;构建并成就他们专属的专业之声。MT7录音室监听耳机承袭了这一基本研发理念,重现最为精细的声音&#xff0c;力求满…

capacitor的android项目接入穿山甲遇到的坑

Caused by: java.lang.ClassNotFoundException: Didnt find class "com.bytedance.sdk.openadsdk.TTFileProvider" on path: DexPathList[[zip file "/data/app/~~Ol1vZKiGBPJT4eFuTS5Zyw==/org.capaci…

网站建设的看法有哪些后端和前端哪个前景好

一.四种模型 阻塞式IO&#xff0c;非阻塞式IO&#xff0c;信号驱动IO&#xff0c;IO多路复用 二.阻塞式IO 特点&#xff1a;最简单&#xff0c;最常用&#xff0c;效率低 阻塞I/O 模式是最普遍使用的I/O 模式 系统默认状态&#xff0c;套接字建立后所处于的模式就是阻塞I/O 模式…

网站建设运营策划方案建站行业乱象完整版

文章目录 0 引入1、带有标尺的温度/湿度计控件1.头文件2.核心代码 2、竖起来的温度/湿度计控件1.头文件2.实现 3、引用 0 引入 QT原生控件没有实现如仪表盘或者温度计的控件&#xff0c;只好自己实现&#xff0c;文章代码部分参考引用的文章。直接上图 图一 带有标尺的温度计…

新建网站的步骤阿里云搜索引擎入口

目录 前言 一、fsck命令 1、HDFS副本块数量的配置 2、fsck命令查看文件的副本数 3、block配置 二、NameNode元数据 1、edits文件 2、fsigame文件 3、NameNode元数据管理维护 4、元数据合并控制参数 5、SecondaryNameNode的作用 三、HDFS数据的读写流程 1、数据写入…

网络优化推广 网站开发建设重庆seo优化公司

正文 大约在五六年前&#xff0c;第一次接触到了当时已经是hot topic的NoSql。不过那个时候学的用的都是mysql&#xff0c;Nosql对于我而言还是新事物&#xff0c;并没有真正使用&#xff0c;只是不明觉厉。但是印象深刻的是这么一张图片&#xff08;后来google到图片来自这里&…

做网站需要多少带宽点播视频网站怎么建设

实验报告题目: 内核模块实验1、实验目的模块是Linux系统的一种特有机制&#xff0c;可用以动态扩展操作系统内核功能。编写实现某些特定功能的模块&#xff0c;将其作为内核的一部分在管态下运行。本实验通过内核模块编程在/porc文件系统中实现系统时钟的读操作接口。2、实验内…

怎么区分营销型网站个人宽带 架设网站需备案

本文翻译自 Reduce the scope and complexity of style calculations&#xff0c;作者&#xff1a;Jeremy Wagner&#xff0c; 略有删改。 JavaScript通常用来改变页面的视觉效果。比如通过改变style样式或者通过计算后改变页面布局&#xff0c;比如搜索或排序数据。长时间运行…

增加网站访客wordpress蜘蛛插件

一、环境QT版本&#xff1a;QT 5.8.0(msvc2013_64)MySQL版本&#xff1a;mysql 5.7.19二、配置之前 mysql 数据库一直都连接不上&#xff0c;网上也搜了很多资料&#xff0c;主要还是库文件的问题。重新将 mysql.pro 编译一下&#xff0c;将生成的 .dll 和 .lib 文件拷贝到 QT …

做深度报道的网站沪尚茗居装修口碑怎么样

档案馆展厅设计的特色化不仅可以增强参观者的体验感&#xff0c;还可以更好地展现档案馆的历史文化价值。 在设计档案馆展厅时&#xff0c;我们可以通过以下几个方面来让其更具特色&#xff1a; 一、主题明确 首先&#xff0c;确定展厅的主题是关键。可以是档案馆的历史沿革…

北京网站建设 shwl虚拟机wordpress建站

0、国内 GitHub 被爆造假&#xff0c;起底背后的黑色产业链作为全球最大的开源社区&#xff0c;GitHub 对于程序员群体而言像是空气般重要的存在&#xff0c;而互联网公司也会通过 GitHub 来进一步了解面试者的编程习惯&#xff0c;技术水平等。但最近知乎上有一篇《中国内地 G…

网页与网站之间的关系做网站的域名怎么申请

引入 今日概要 图片懒加载seleniumphantomJs谷歌无头浏览器知识点回顾 验证码处理流程今日详情 动态数据加载处理 一.图片懒加载 什么是图片懒加载&#xff1f; 案例分析&#xff1a;抓取站长素材http://sc.chinaz.com/中的图片数据 #!/usr/bin/env python # -*- coding:utf-8 …

新手做站必看 手把手教你做网站免费域名网站黄

Mysql数据库 ⽬前关系数据库有六种范式&#xff1a; 第⼀范式&#xff08;1NF&#xff09;、第⼆范式&#xff08;2NF&#xff09;、第三范式&#xff08;3NF&#xff09;、巴斯-科德范式 &#xff08;BCNF&#xff09;、第四范式(4NF&#xff09;和第五范式&#xff08;5NF&a…

php企业网站cms网站设计流程详细步骤

YOLOv8n原图检测YOLOv8n增强后检测召回率和置信度都有提升 前言 这篇博客讲讲低照度,大家都催我出一些内容,没想到这么多同学搞这个,恰好我也做过这方面的一些工作,那今天就来讲解一些方法,低照度的图像增强大体分“传统算法”和“深度学习算法”; 目前低照度的图像增…