在上两篇文章中,我们简单了解了循环结构中的while和do...while循环语句,并分析了他们的特点与区别。在这以后,今天,大家一起来了解一下for循环有哪些特点吧:
3) for语句
下面时它的格式:
for(语句1;语句2;语句3){
循环体
}
语句1:在语句1中,我们可以进行变量的定义,也可以为变量赋值以及进行变量的运算甚至调用方法(未来)。在语句1中,我们可以定义多个变量,但要符合语法。
语句2:和while的条件表达式一样,只不过在for循环中,我们把它写在语句2中,同样的,我们只认boolean结果, 而不需要关心boolean是怎么来的。
和while一样,for循环语句也会在判断了条件表达式后,直接去执行循环体,那么语句3是干嘛的呢?
它主要是用来做循环条件的改变,也就是说在while中的i++之类的语句,在for循环中我们就不再把它放进循环体当中了,而是直接写在语句3的位置了
需要注意的是,在for循环中语句1只会执行一次,而语句2和语句3则会随着循环体的执行跟着执行,所以通常for循环的执行顺序为:
1.语句1,定义变量并对其进行初始化,只会执行一次
2.判断语句2的条件是否为真,为真则进入循环,为假结束循环
3.执行循环体
4.执行语句3,使循环条件发生变化
5.判断语句2的条件
6.为真则执行循环体
7.执行语句3,使循环条件发生变化
8.判断语句2的条件
.......
直到语句2判定为假,循环结束
现在,我们再来看几个例子:
//案例一:使用for循环输出五次"你好"
for(int i=0;i<5;i++){
System.out.println("你好");
}
可以看到,for循环除了和语句的位置发生了变化,剩下的和while循环基本一致。同样用变量i记录了已经输出的次数,所以一旦i=5,就代表已经输出了5次,因此再次判断语句2时会发现5<5为假,循环就会结束了
下面大家再来看看这个例子:
//案例二:for循环的空语句
int i=0;
for(;i<5;){
System.out.println("你好");
i++;
}
我们把语句1与语句3空了出来,并在for循环上面定义了i的初值,然后在循环体内使i发生改变,我们会发现现在除了格式不同,其余和while完全一致。
因此我们可以把for循环看作代码更为简洁的while循环,在编写程序时,按照需求任意选择即可。
for循环的讲解到这里就基本结束了,现在给大家讲解一下循环中的两个辅助语句:break和continue。
4)循环辅助语句
4.1)break语句
break语句,大家并不陌生,老朋友了,在switch中,它可以结束整个switch分支结构,防止穿透 。在循环中,它也发挥着类似的作用,我们可以根据break语句,来手动的停止循环。
循环结束有两种情况:
第一种就是我们之前常见的,每次循环操作完成后,程序会自动进行下一次循环条件判断,如果条件不成立,那么循环就自然结束了。
第二种方式就是通过break语句,在循环中,合理的使用使用break关键字,我们可以提前的手动结束整个循环。
给大家举个例子:
for(int i=0;i<5;i++){
if(i==3){
break;
}
System.out.println("你好");
}
之前明明能够输出5次"你好"的程序,现在怎么就只能够输出3次了呢?
答案就是break语句,之前有提过i变量是用来记录已经输出的次数的,所以我们使用if语句,来判断i是否等于3,一旦为真,代表已经输出了三次。此时,我们则通过break语句结束了整个循环,所以最后只输出了三次。
4.2)continue语句
接下来是continue语句,它和break类似,但break是结束整个循环,无论循环条件是否满足,只要在循环过程种碰到break语句,本此循环就立即结束了,后面的循环也不再执行了。
但continue只是跳过当前循环,后面的循环还会继续执行,下面大家看一下例子:
for(int i=1;i<=5;i++){
if(i==3){
continue;
}
System.out.println("第"+i+"次输出:你好");
}
在这个程序中,为了便于大家理解,我们把i的初值定义为了1,现在他代表的意思则发生了改变,变为了正在输出第几次。
因此当i等于3时,我们使用continue语句跳过了本此循环,因此程序的结果为:
第1次输出:你好
第2次输出:你好
第4次输出:你好
第5次输出:你好
以上,break和continue语句也已经带大家了解完毕了。
那么至此,我们的Java入门第四期:java中的顺序、分支和循环结构,到这里也就圆满完结了,下面我们来做个小总结:
总结:
在本期文章中,我们大家一起认识了Java中有哪些流程结构,并了解了每种结构的特点以及有哪些相对应的流程控制语句,比如分支结构中的if、else和循环结构中的while、do...while以及for循环等等,希望通过本期文章,大家对java能够有一个更深的了解,同时,感谢大家的支持与鼓励,谢谢大家!
那么今天的内容就到这里啦,如果存在哪些疑问或问题欢迎大家指出,我们下期再见~