文章目录
从零开始的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");
}
既然死循环应当避免,那么我们下一步要学习的肯定是如何避免,总共有如下几种办法:
- 对于知道循环次数的情形,使用for循环。----for循环的语法格式,表达式3处写循环控制语句,不容易忘记。while和do…while容易忘记。
- 写完代码以后,找临界值试试验证代码的正确性。
- 借助break结束循环。
前面两个是需要我们自己在代码书写时注意的,接下来我们来讨论一下break以及其他在循环中起到特殊作用的关键字。
三、break、continue关键字
(1)break关键字
break关键字一共2个用途:
- 用在switch…case语句中的每个case里,用于结束switch语句。
- 用在循环结构的循环体中,用于结束当前循环的执行。—即: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总结
- break用于结束当前循环。
- continue用于结束本次循环。
- break、contine通常是与if语句连用。即某种条件满足时才break或continue。
- break使用比较频繁,经常用在死循环里结束循环。或者用在for循环里提前结束循环。
- 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循环。
本篇内容到这里就结束了,感谢各位观看。下一期我们会讲一讲数组,这是我们之后将会学到的第一个也是最简单的数据结构。