从零开始的Java学习生活(8)


从零开始的Java学习生活(8)

在上文中,我们讲解了Java中分支语句和循环语句的简单代码写法,本篇文章我们将继续深入学习了解循环结构的代码写法。


一、for、while、do…while区别

首先我们来复习一下三种语句的区别,来看下面一段代码:

	public static void main(String[] args) {
		for(int i = 5; i < 5; i++) {
			System.out.println("for循环");
		}
		
		int j = 5;
		while(j < 5) {
			System.out.println("while循环");
			j++;
		}
		
		int k = 5;
		do {
			System.out.println("do..while循环");
			k++;
		}while(k < 5);
	}

上述代码执行完毕后,会打印什么结果?大家自己在eclipse上面测试一下吧,答案我就不打出来了。

二、死循环

死循环,即无限循环。循环一旦开始就永远不会停止。在开发过程中,应当避免死循环。

举个栗子:

public static void main(String[] args) {
		for(int i = 0 ; i != 10 ; i += 3 ) {
			System.out.println("hello world");
		}
		System.out.println("end");//这行代码永远执行不到
	}

因为i每次循环+3,所以i永远不可能等于10,这个for循环就会一直执行下去。

上面是for的例子,我们再来一个while的:

public static void main(String[] args) {
		int i = 0;
		while(i < 100) {
			System.out.println(i);
		}
		System.out.println("end");
	}

既然死循环应当避免,那么我们下一步要学习的肯定是如何避免,总共有如下几种办法:

  1. 对于知道循环次数的情形,使用for循环。----for循环的语法格式,表达式3处写循环控制语句,不容易忘记。while和do…while容易忘记。
  2. 写完代码以后,找临界值试试验证代码的正确性。
  3. 借助break结束循环。

前面两个是需要我们自己在代码书写时注意的,接下来我们来讨论一下break以及其他在循环中起到特殊作用的关键字。

三、break、continue关键字

(1)break关键字

break关键字一共2个用途:

  1. 用在switch…case语句中的每个case里,用于结束switch语句。
  2. 用在循环结构的循环体中,用于结束当前循环的执行。—即:break写在哪个循环里,就结束哪个循环。

如果break出现在循环体里,break用于结束当前循环。

如果循环体内,break后面还有别的代码,break后面的代码不会执行。----仅限循环体内的代码。循环体外的代码可以正常执行。

如果循环次数尚未用完,执行到了循环体中的break语句,也是直接结束循环,未执行的循环次数不再执行。

break可以出现在for循环里,可以出现在while循环里,也可以出现在do…while循环里。

(2)continue关键字

continue关键字的作用是用于结束本次循环。例如:循环体里一共有10行代码,第5行出现了continue,当执行完continue以后,本次循环中第6行到第10行代码将不再执行。

continue只是结束本次循环,而不是结束整个循环。continue通常情况下也是与if语句搭配使用。

(3)break、continue总结

  1. break用于结束当前循环。
  2. continue用于结束本次循环。
  3. break、contine通常是与if语句连用。即某种条件满足时才break或continue。
  4. break使用比较频繁,经常用在死循环里结束循环。或者用在for循环里提前结束循环。
  5. continue很少使用。

四、循环嵌套

接下来我们来讲一下循环嵌套:

循环嵌套:一个循环作为另外一个循环的循环体或者是循环体的一部分。

话不多说,上图更好懂

在这里插入图片描述这里的嵌套不单单是自己和自己嵌套,for、while、do-while三者之间可以互相嵌套。

如果还是不太清楚地话来看下下面的例子:

需求:打印如下内容:

1 2 3 4 5

1 2 3 4 5

1 2 3 4 5

如果只用一层循环,我们来看下代码:

		for(int j = 1; j <= 5; j++) {
			System.out.print(j + " ");
		}
		System.out.println();
		
		for(int j = 1; j <= 5; j++) {
			System.out.print(j + " ");
		}
		System.out.println();
		
		for(int j = 1; j <= 5; j++) {
			System.out.print(j + " ");
		}
		System.out.println();

怎么样,是不是又有没学循环时那味儿了(谁敢这么写我就砍了谁 ),所以二重,乃至多重循环是非常必要的。

来看下正确代码:

for(int i = 0; i < 3; i++) {
			for(int j = 1; j <= 5; j++) {
				System.out.print(j + " ");
			}
			System.out.println();
		}
	}

ps:大家在写多重循环时最好是一重循环就往里tab一次,注意反括号和对应循环的for关键字对齐,这样写出来的代码时很好看的,而且方便你快速找到某一个循环。(作者因为有人让我看所有反括号都扔在第一列的多重循环自闭过,-_-||)


循环总结

循环是程序开发中比较常用的语法,循环结构可以让某些代码重复执行。

Java提供了for循环、while循环和do…while循环。

明确知道循环次数使用for循环。

不知道循环次数使用while循环。

至少执行一次循环体的时候使用do…while循环。

开发中要避免死循环,可通过break结束死循环。

break用在循环中,作用是结束循环,只能结束本层循环(循环嵌套时),break通常与if语句连用。

continue用于结束本次循环,进入下一次循环。

循环嵌套时:可以把内层循环看成外层循环的循环体。理论上讲,循环嵌套的层数是无限的。for循环、while循环、do…while循环可以相互嵌套。最常见的是for循环嵌套for循环。

本篇内容到这里就结束了,感谢各位观看。下一期我们会讲一讲数组,这是我们之后将会学到的第一个也是最简单的数据结构。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值