乐字节Java循环:循环控制和嵌套循环
乐字节小乐上次讲完了Java反射,接下来小乐给大家讲述Java循环。
循环有以下四部分:

一、循环控制
1. do..while
直到型 ( 先执行后判断) ,结构为:

先执行循环体,后判断布尔表达式。循环体至少执行一次
其流程图如下:

2. for
灵活的循环 ( 能够确定循环次数) ,结构为:

for 循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构
for 循环在执行条件测试后,先执行程序部分,再执行迭代因子( ( 步进) ) 。
初始化部分、条件判断部分和迭代因子可以为空语句,但以“;”分开,下面的语句
表示无限循环

在 for 语句的初始化部分声明的变量,其作用域为整个 for 循环体,例如:

其流程图如下:

案例:
a:输出10次HelloWorld
b:输出1-10的数据
c:输出10-1的数据
d:求1-10的和
e:求1-100的和;求1-100的偶数和,求1-100的奇数和;1-50当中能被3整除的数的和
f: 求出 1-100当中既能被3整除又能被5整除还能被2整除的和
g:求出 1-100当中能被3整除或者能被5整除或者能被2整除的和,
h:求5的阶乘 5!
i:请找出[1,200]之间能被3整除的 所有数,每行输出5个数。
J:请找出[1,200]之间能被3整除的所有数,每行输出5个数,每个数之间用逗号分隔。
K:1+2+3+4+5+6+7+8+9+10=55用程序实现
思考:
键盘输入一个年月日、判断该年月日是该年的第几天。
键盘输入一个年月日、判断该年月日离该年结束还有多少天。
二、嵌套循环
指的是在一个循环语句内部再嵌套一循环或者多个循环输出如下图形:
1、5x5的空心正方形
思路:要想打印一个5x5的空心正方形,首先它的第一横行和最后一行都是填满的,需要全部遍历出来,第二三四行和只有左右两条边是出来的,中间部分为空的。因此在打印第二三四列的时候,需要再进行一下判断,来确定打印空格。
for (int x = 0;x<5 ;x++ ) //先确定是5行5列的正方形
{
if (x>0 && x<4) //打印出中间空的情况
{
for (int z=0;z<5 ;z++ ) //打印竖的列
{
if (z==0 | z==4) //第一和最后一列
{
System.out.print("* "); //输出“* ”
}else if(z>=1 && z<=4){ //中间三列
System.out.print(" ");//输出“ ”
} } }
else if(x==0 | x==4){ //第一行和最后一行
for (int y=0;y<5 ;y++ )
{
System.out.print("* ");//全部都输出“*”
}
}
System.out.println("");//println做一个换行(print输出的内容是不换行的)
}

2、菱形
思路分析: 输出一个菱形,可以拆分成两部分进行思考,分成上下两个三角形来进行输出,那好了,如何输出一个三角那,首先,三角形的是一个等腰三角形,而不是直角三角形,所以横排除了遍历“*”之外,还需要在其前边添加若干空格把它挤过去 ,显得比较好看,所以还得遍历他前边的空格。
for (int x = 0;x<10 ;x++ )//假设一共有10竖排
{
if (x<=5)//上半个三角形的情况
{
for (int z =5-x;z>0 ;z-- )//前边的空格是一个越来越少的三角形形态,所以定义为5-x
{
System.out.print(" ");
}
for (int y=0;y<x ;y++ )// 第一行一个“*”,第二行2个“*”,可以得出列数是和行数相等的,故定义y<x;
{
System.out.print("* ");//此时输出“* ”;
}
}else//这是下半个三角形的情况
{
for (int z =0;z<x-5 ;z++ ) //此时前边空格形态是上少下多,正好为x-5;
{
System.out.print(" ");
}
for (int y=10-x;y>0 ;y-- )//上宽下窄,所以遍历“*”为10-x;
{
System.out.print("* ");
}
}
System.out.println("");
}

3、空心菱形
思路分析:输出一个空心菱形,需要拆分成三部分进行思考,分成上下两个三角形来进行输出,那好了,如何输出一个三角那,首先,三角形的是一个等腰三角形,而不是直角三角形,所以横排除了遍历中间的菱形部分之外,还需要在其前边添加若干空格把它挤过去 ,显得比较好看,所以还得遍历他前边的空格。中间的空格也需要进行单独遍历,而“*”做的框,只需要把确定的值确定出来,让它输出“*”,即可!
for (int x = 0;x<10 ;x++ )//假设一共有10竖排
{
if (x<=5)//上半个三角形的情况
{
for (int z =5-x;z>0 ;z-- )//前边的空格是一个越来越少的三角形形态,所以定义为5-x
{
System.out.print(" ");
}
for (int y=0;y<x ;y++ )//这里了开始就进入正题了,
{
if (y==0 | y==x-1) //这是两边的框, 此时输出“* ”
{
System.out.print("* ");
}else{//中间剩下的部分输出空格
System.out.print(" ");
}
}
}else{
for (int z =0;z<x-5 ;z++ ) //此时前边空格形态是上少下多,正好为x-5;
{
System.out.print(" ");// 不多说,先把空格怼进去
}
for (int y=10-x;y>0 ;y-- )// 10-x为有几列
{
if (y==1 | y==10-x ) //第一列和10-x(最后一列)输出“*”做一个框出来
{
System.out.print("* ");
}else{ //中间部分输出空格
System.out.print(" ");
}
}
}
System.out.println("");
}

来个九九乘法表:
先卖个关子,也算是留个作业吧,大家开动脑筋,动动手操作下,下次可以公布答案。
乐字节Java循环:循环控制和嵌套循环的更多相关文章
- 乐字节Java反射之四:反射相关操作
大家好,乐字节小乐继续为Java初学者讲述Java基础知识.上次说到乐字节Java反射之三:方法.数组.类加载器,这次是Java反射之四:反射相关操作 1.操作属性 //1.获取Class对象 Cla ...
- 乐字节Java继承|方法重写、super和final关键字
大家好,乐字节的小乐又来了,上一篇是:乐字节Java|JavaBean.继承与权限修饰,也是属于Java继承的,今天继续Java继承. 一. 方法的重写 父类不满足子类的要求,按需改写.注意 方法签名 ...
- 乐字节Java|封装JavaBean、继承与权限修饰
本文继续讲Java封装.上一篇:乐字节Java|GC垃圾回收机制.package和import语句 这次讲述JavaBean.继承与权限修饰 一. 封装javaBean 封装(Encapsulatio ...
- 乐字节Java|GC垃圾回收机制、package和import
本文接上一篇:乐字节Java|this关键字.static关键字.block块.本文是接着讲述JavaGC垃圾回收机制.package 和 import语句. 一.GC垃圾回收机制 GC全名:Garb ...
- 乐字节Java编程语言发展,面向对象和类
大家好,上次我们讲过了乐字节Java编程之方法.调用.重载.递归,接下来我们将会进入到Java封装的内容.Java编程语言发展,面向对象和类. 一.编程语言的发展 机器语言——直接由计算机的指令组成, ...
- 乐字节Java反射之三:方法、数组、类加载器和类的生命周期
本文承接上一篇:乐字节Java发射之二:实例化对象.接口与父类.修饰符和属性 继续讲述Java反射之三:方法.数组.类加载器 一.方法 获取所有方法(包括父类或接口),使用Method即可. publ ...
- 乐字节Java反射之二:实例化对象、接口与父类、修饰符和属性
大家好,小乐继续接着上集:乐字节Java反射之一:反射概念与获取反射源头Class 这次是之二:实例化对象.接口与父类.修饰符和属性 一:实例化对象 之前我们讲解过创建对象的方式,有new .克隆.反 ...
- 乐字节Java反射之一:反射概念与获取反射源头class
一.Java反射机制概念 “程序运行时,允许改变程序结构或变量类型,这种语言称为动态语言”,如Python, Ruby是动态语言:显然C++,Java,C#不是动态语言,但是JAVA有着一个非常突出 ...
- 乐字节Java变量与数据结构之二:Java常量与变量
大家好,小乐又来给大家讲述Java基础知识.上次说了乐字节Java变量与数据类型之一:Java编程规范,关键字与标识符,这次将接着往下说,谈谈Java常量与变量. 1.常量 1).定义 在程序执行的过 ...
随机推荐
- Apache的安装和配置
一.官网下载Apache 官网地址:https://httpd.apache.org/ 点击Download--->点击Files for Microsoft Windows--->点击A ...
- [Zhx] 无题
https://www.luogu.org/problemnew/show/T15368 区间修改,区间查询k(<= 10)大值 应该也可以用分块写 #include <cstdio> ...
- Educational Codeforces Round 69
目录 Contest Info Solutions A. DIY Wooden Ladder B. Pillars C. Array Splitting D. Yet Another Subarray ...
- 代码 | 自适应大邻域搜索系列之(5) - ALNS_Iteration_Status和ALNS_Parameters的代码解析
前言 上一篇推文说了,后面的代码难度直线下降,各位小伙伴可以放去n的100次方心了.今天讲讲一些细枝末节,就是前面一直有提到的参数和一些状态的记录代码.这个简单啦,小编也不作过多解释了.大家直接看代码 ...
- 做reacat小项目的过程(我感觉适合那种刚刚接触react感觉很深奥的亲们,通过这个可以建立一个很垃圾的项目,入门吧,往深处就需要自己再看了)
需求:做一个react框架的前端框架(包括路由,请求后端等),大概就是做一个左边导航右边显示组件页面的东西,ui为material-ui 环境: 软件:vscode 包含的知识点:使用路由来导航,使用 ...
- Tkinter 之Text文本框标签
一.参数说明 语法 作用 t=tk.Text()t.insert(END,'插入的文本信息') INSERT:光标的插入点CURRENT:鼠标的当前位置所对应的字符位置END:这个Textbuffer ...
- Mac之Sublime Text使用Go
安装Golang build 包 点击 Preferences > Package control 菜单(MAC快捷键 shift + command + p) 在弹出的输入框输入 instal ...
- 基于docker部署zabbix
基础环境 cat /etc/redhat-release CentOS Linux release (Core) docker安装 配置yum源 # vim /etc/yum.repos.d/dock ...
- 使用HttpClient调用WebAPI接口,含WebAPI端示例
API端: using log4net; using System; using System.Collections.Generic; using System.IO; using System.L ...
- php发现一个神奇的函数
echo strtr('aaddffvvbbcc','avc','242'); //22ddff44bb22 echo '<br>'; echo str_replace('ad',22,' ...