关于for与while循环的区别我的理解

有很多帖子写for循环与while循环的区别是循环变量的差异,引用其他人的原话,贴一张截图,他们大多是这样描述的
这里写图片描述

  1. 个人认为上图所述的从内存角度考虑,for循环既可以使用局部变量,也可以使用外部变量,而while循环的终止条件则必须是外部变量。下面是都是用外部变量的测试片段
@org.junit.Test
	public void testForWhile() {
		// 方式1
		int i = 5;
		for (; i < 10; i++) {
			System.out.print("-");
		}
		System.out.println(i);
		// 方式2
		int j = 5;
		while (j < 10) {
			System.out.print("-");
			j++;
		}
		System.out.println(j);
	}
	/** result:
	 -----10
     -----10	 
	 */

可见,并不是说for循环不能使用外部变量;但是for循环的确可以使用局部变量,这也是用的最频繁的方式。
2. 再者从需求场景考虑,不知道循环多少次,用while循环;知道循环次数则用for循环。这句话个人理解,for循环照样能实现while循环的需求, 测试代码如下:

@org.junit.Test
	public void testForWhile2() {
		// 方式1
		int i = 5;
		for (;true; i++) {
			System.out.print("-");
			if (i>10) {
				break;
			}
		}
		System.out.println(i);
		// 方式2
		int j = 5;
		while (true) {
			System.out.print("-");
			if (j>10) {
				break;
			}
			j++;
		}
		System.out.println(j);
	}
	/** result:
	-------11
	-------11
	 */

所以for循环能够实现while循环的功能,但while循环不能采用循环内的局部变量作为终止条件。但为什么有的时候又要用while循环呢?个人觉得是因为看起来更简洁,逻辑更清晰。

总之总结一句话,for循环与while不同在于for循环可以采用局部变量作为循环变量,除了考虑这一点,在其他功能实现上谁看起来更简洁清晰就用谁。另外还有个 do while 循环则是先执行一次再进行判断,所以该循环在先需要执行一次的情况下,代码更加简洁。

  • 16
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值