Java基础知识(Day 2 循环结构 break与continue)
在Java中循环结构可以由三种语句构成,分别是 for语句,while语句以及do while语句。
(1)for 语句
for语句的结构为:
for(1.变量初始化部分;2.条件判断部分;3.变量改变部分) 循环体;
条件流程为:
(1)进入 for 循环,为循环控制变量赋初始值(对应条件初始化部分)。
(2)当判断条件为真时,则执行循环体;否则跳出循环。
(3)当一次循环完成,再执行变量改变部分,对变量进行改变,如果继续满足判断条件时,再执行循环体,一直这样执行下去,到最后变量改变的不符合判断条件时,循环结束,跳出循环执行循环之后的语句。
代码如下:
(1)输出个位数字之和
public class Demo {
public static void main(String args[]) {
int sum = 0;
for(int i = 0;i<10;i++){
sum = sum + i;
}
System.out.println("个位数字之和位:" +sum);
}
}
执行结果如下:
D:\>javac Demo.java
D:\>java Demo
个位数字之和位:45
说明:在for循环中,for循环的变量初始化部分,条件判断部分,变量改变部分都可以没有,但是括号中的分号(;)一定要有。
(2)for(;;)例子的输出
public class Demo {
public static void main(String args[]) {
int sum = 0;
int i = 0;
for(;;){
sum = sum + i;
System.out.println("数字之和位:" +sum);
}
}
}
结果为:
D:\>java Demo
数字之和位:0
数字之和位:0
数字之和位:0
数字之和位:0
数字之和位:0
数字之和位:0
数字之和位:0
数字之和位:0
上述的代码结果应为无限多次循环,本文只放了一部分。
特别说明:
- 对于for中没有变量初始化部分时,可以将条件初始化放在for语句外面,也可以正常执行 for 语句。
- 当没有条件判断部分时,在Java中默认为true(真),这意味着循环体能够进行无限次循环。
- 而没有变量改变部分,也就是无法对条件进行改变,所以也就无法使判断条件为假,也就是循环能够无限执行。我们可以将其放在for语句内,使循环体能够正常跳出。
(2)while 语句
while 语句的结构为:
循环初始值
while (条件判断部分) {
循环体;
条件改变部分;
}
当初始值满足判断条件时,循环一直执行,变量改变部分改变变量,当不满足判断条件时,循环终止,跳出循环,执行循环之后的代码。
(1)用while 语句输出个位数字之和
public class Demo {
public static void main(String args[]) {
int sum = 0;
int i = 0;
while(i<10){
sum = sum + i;
i++;
}
System.out.println("个位数字之和位:" +sum);
}
}
执行结果为:
D:\>java Demo
个位数字之和位:45
(3)do while 语句
do while 语句的结构为:
循环初始值
do {
循环体
条件改变部分;
}while(条件判断部分);
do while 语句中我们先进行一次循环,再判断循环条件,判断条件成立,则继续执行。如条件不成立,则跳出循环。
(1)用do while 语句输出个位数字之和
public class Demo {
public static void main(String args[]) {
int sum = 0;
int i = 0;
do {
sum = sum + i;
i++;
}while(i<10);
System.out.println("个位数字之和位:" +sum);
}
}
执行结果为:
D:\>java Demo
个位数字之和位:45
(4)while 与 do while 语句的区别
while 语句与do while 语句都是循环语句,可这两个语句有什么区别?通过以上代码循环时,其流程对变量的改变,我们可以发现:
(1)while 语句是先判断循环条件,条件成立,则进入循环。
(2)do while 语句是先进入循环体,循环一遍之后再判断条件,如条件成立,便进入循环,条件不成立,跳出循环。
经过以上两个的对比,也就是说do while 语句不管满不满足判断条件都会执行一次,相当于do while 语句至少执行一次。
(1)while 语句
public class Demo {
public static void main(String args[]) {
int i = 7;
while(i>10){
System.out.println("循环执行!");
i++;
}
System.out.println("程序结束!");
}
}
执行结果如下:
D:\>javac Demo.java
D:\>java Demo
程序结束!
(2)do while 语句
public class Demo {
public static void main(String args[]) {
int i = 7;
do{
System.out.println("循环执行!");
i++;
}while(i>10);
System.out.println("程序结束!");
}
}
执行结果如下:
D:\>javac Demo.java
D:\>java Demo
循环执行!
程序结束!
对于while 代码,由其输出结果来看,代码正确。显然代码在运行时没有进入循环。
而do while 语句的代码能够输出循环中的语句,很明显执行了一次循环,再判断循环条件时,发现条件不满足,所以不再进行输出,跳出循环。
(4)break 与 continue
我们再谈一谈与循环密切相关的一个东西,break 与 continue。
我们来解释一下它们的作用:
(1)break:跳出本循环。
(2)continue:跳出本次循环。
那这两个有什么区别呢?我们通过代码来看,代码如下:
(1)break
public class Demo {
public static void main(String args[]) {
for(int i = 7;i<10;i++){
System.out.println(i);
break;
}
}
}
执行结果为:
D:\>javac Demo.java
D:\>java Demo
7
显然,只进行了一次循环,当循环执行在break 时,直接跳出循环,循环结束。
这便是跳出本循环。
(2)continue
public class Demo {
public static void main(String args[]) {
for(int i = 7;i<10;i++){
System.out.println(i);
if(i >= 8){
continue;
}
System.out.println("本句执行!");
}
}
}
执行结果为:
D:\>javac Demo.java
D:\>java Demo
7
本句执行!
8
9
从代码执行结果中,可以看出System.out.println(“本句执行!”);只执行了一句,这是因为循环第二次时,进入 if 语句,执行了continue语句,continue是跳出本次循环,执行下一次循环,所以在其之后的语句不在执行。
通过上述两个代码可以清楚的认知其区别。