循环语句——for循环

前言

其实Java有趣的地方还是非常多的,不要觉得它是一个死板板的编程语言,其实它有自己的生命力,是一个非常好用的工具,能实现我们所想所思的东西,哎,一下话如决堤之水,滔滔不绝,话题止住,进入这次的主题——循环,而这次的循环分为三篇文章来说下。

一、循环结构概述语句

循环语句就是在满足一定条件的情况下反复执行某一个操作。在Java中提供了三个最常用的循环语句:for循环、while循环、do…while循环。

二、for循环、while循环、do…while循环应用场景分析

1、for循环
用于执行已知循环次数的语句

2、while循环
用于执行未知循环次数的语句。只有满足条件才循环。

3、do…while循环
用于执行未知循环次数的语句。不管是否满足条件,都至少会执行一次循环。

其实个人感觉用得最多的是前两个循环,do…while循环用得要少一点点,不过可能是我还没遇到那种特定的场景也说不一定哈。

三、for循环

1.for循环语句格式

for(初始化表达式;条件表达式;循环后的操作表达式){
循环体;
}

2.关于for循环的执行流程(单个for循环)

2.1流程

1、执行初始化语句
2、执行判断条件语句,看其返回值是true还是false
如果是true,就继续执行
如果是false,就结束循环
3、执行循环体语句
4、执行循环后的操作表达式
5、回到步骤2继续循环
这个流程的排序是建立在4循环后的表达式先运行再自增(i++)与之相比的有一个先计算再自增(++i)

2.2例子(代码实现)

在这个例子中我会在for循环的对应位置上标上对应的流程步骤,方便方便大家加深理解
代码如下(示例):

public class Test01 {

	public static void main(String[] args) {
		// 在我们没有学过for循环及其他循环是打印5次hello world,我们基本都是这样做的
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
		System.out.println("hello world");
		
		System.out.println("------这是一条华丽的分割线-------");
		// 使用for循环,打印5次hello world
		//  初始化条件  判断条件  循环后的表达式
		for(int i = 0;  i < 5;    i++) {
			//     循环体语句
			System.out.println("hello world");
		}
	}
}

代码如下(输出):

hello world
hello world
hello world
hello world
hello world
------这是一条华丽的分割线-------
hello world
hello world
hello world
hello world
hello world

小结

其实不难看出for循环大大的节约了时间及算法的整体复杂度,还有适应性也就是Java中的代码的健壮性,这还是只是输出5次哦,如果一百次,一千次,一万次呢,甚至100万次呢,您复制粘贴还能行吗,而for循环只需要改一个判断条件就行了。

3.多重for循环(详解!重要!理解!)

3.1双重for循环——打印直接三角形(嵌套循环)

代码如下(示例):

public class Triangle {

	public static void main(String[] args) {
		getStartTriangle(7);// 在同一个类中调用getStartTriangle,输出int类型的实参
	}
	public static void getStartTriangle(int rows) {// 给予一个int类型的形参
		for(int i = 1;i<=rows;i++) { // 建立外层for循环,初始条件为1,判断条件为是否小于参数rows,循环后的表达式为i++
			for(int z = 1;z<=i;z++) {//建立内层for循环,初始条件为1,判断条件为是否小于外层for循环的i,循环后的表达式为z++
				System.out.print("*");// 这是内循环的的输出,其中print表示输出不换行
			}
			System.out.println();// 这是外循环的输出,这里的功能是外循环一次是换行一次
		}
	}
}

代码如下(输出):

*
**
***
****
*****
******
*******

小结

从这个代码演示的结果并不是很重要,我们应该注重的是那两个for循环的嵌套是怎么回事,是怎么个运行状态,接下来就这个例子,开始进行这两个for循环的嵌套是怎么运行的来好好剖析一下。

3.2关于打印直接三角形双重for循环的剖析(干货)

代码如下(测试):

public class Test02 {

	public static void main(String[] args) {
		for(int i = 1;i<=4;i++) { //外层循环
			for(int z = 1;z<=i;z++) { // 内部循环
				System.out.println("i="+i);
				System.out.println("z="+z);
				System.out.println("------这是一条华丽的分割线-------");				
			}
		}
	}
}

代码如下(输出):

i=1
z=1
------这是一条华丽的分割线-------
i=2
z=1
------这是一条华丽的分割线-------
i=2
z=2
------这是一条华丽的分割线-------
i=3
z=1
------这是一条华丽的分割线-------
i=3
z=2
------这是一条华丽的分割线-------
i=3
z=3
------这是一条华丽的分割线-------
i=4
z=1
------这是一条华丽的分割线-------
i=4
z=2
------这是一条华丽的分割线-------
i=4
z=3
------这是一条华丽的分割线-------
i=4
z=4
------这是一条华丽的分割线-------

小结

其实从输出的结果大概就可以知道,外循环循环一次其实内循环的次数是不同的需要根据外循环来调整。

第一轮循环

就这个例子来看比如外循环为i为初始值1是,由于是i++,所以直接进入内循环,z = 1,1<=1,内循环循环完成,z自增1,此时z = 2,再进行内循环的判断,2!<=1,不满足条件,整个双重循环的结束第一轮,于是此时才是外循环i,开始自增,i= 2。

第二轮循环

此时的初始i = 2, 由于是i++,先计算再自增,直接进入内循环,此时的z又要从新从初始值开始z = 1,开始进入条件判断1<=2,所以结束本次内循环,z自增为2,又回到判断语句,z<=i即2<=2,结束本次计算,开始z自增为3,再进行判断但是此时3>2了,所以本次大循环结束,开始i自增为i = 3,

第三轮循环…
以此类推

总结

其实本人一开始就是因为这个例子,才开始看懂双循环是怎么个运行流程,随之就慢慢看懂其他的多重循环,其实基本原理基本都是一样的,所以特别将这个例子提出来给大家分享,个人感觉说得还是有点潦草,望大佬勿喷,有宝贵的意见能够分享出来给我。谢谢!

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值