和 if
条件语句有点类似。当 ()
内的结果为 true
时则重复复执行执行 {}
内的语句,直到 ()
内的结果为 false
结束,或者使用 break
语句结束循环,如果一直为 true
则将进入死循环。
语法
while (布尔表达式) {
//循环内容
}
例子
利用 while
循环输出3次 这是一个循环
int i = 0;
while (i < 3) {
System.out.println("这是一个循环");
i++;
}
使用 break
语句结束循环
利用 while
输出一次 这是一个循环
while (true) {
System.out.println("这是一个循环");
break;
}
注:应设计好结束循环的逻辑,避免进入死循环
和 while
循环有点类似,不同的是他会先执行一次 {}
内的语句,然后再根据 ()
内的结果来判断是否继续循环。 如果为 true
则继续循环,否则结束循环。也可使用 break
语句来结束循环。
语法
do {
//代码语句
} while (布尔表达式);
例子
利用 do…while
循环输出3次 这是一个循环
int i = 0;
do {
System.out.println("这是一个循环");
i++;
} while (i < 3);
和 while
循环有点类似,只要布尔表达式的结果为 true
便会循环 {}
的代码块,直至为 false
或使用 break
结束
语法
for (初始化; 布尔表达式; 更新) {
//代码语句
}
例子
利用 for
循环输出3次 这是一个循环
for (int i = 0; i < 3; i++) {
System.out.println("这是一个循环");
}
在使用 for
循环时,要注意的点也有很多
for
进入死循环例子
for (;;) {
System.out.println("这是一个循环");
}
结果
这是一个循环
这是一个循环
这是一个循环
...
例子
int i = 0;
for (System.out.println("这是初始化部分"); i < 3; System.out.println("这是更新部分")) {
System.out.println("这是一个循环");
i++;
}
结果
这是初始化部分
这是一个循环
这是更新部分
这是一个循环
这是更新部分
这是一个循环
这是更新部分
因为只能写一条一些特殊的语句,因而可以使用函数等其它方式扩展来编写多条语句
例子
public static int i;
public static void main(String args[]) {
for (init(); i < 3; update()) {
System.out.println("这是一个循环");
}
}
public static void init() {
i = 0;
System.out.println("这是初始化函数");
}
public static void update() {
i++;
System.out.println("这是更新函数");
}
结果
这是初始化部分
这是一个循环
这是更新部分
这是一个循环
这是更新部分
这是一个循环
这是更新部分
当然这些做法意义都不是很大,只是想让你知道各个部分的作用和使用
break
语句会直接结束循环而不会执行接下来的部分。例子:执行2遍 for
循环
public static int i;
public static void main(String args[]) {
for (init(); bl(); update()) {
code();
}
}
public static void init() {
i = 0;
System.out.println("这是初始化部分");
}
public static boolean bl() {
System.out.println("这是布尔表达式部分");
return i < 2;
}
public static void code() {
System.out.println("这是循环代码块部分");
}
public static void update() {
i++;
System.out.println("这是更新部分");
}
结果
这是初始化部分
这是布尔表达式部分
这是循环代码块部分
这是更新部分
这是布尔表达式部分
这是循环代码块部分
这是更新部分
这是布尔表达式部分
这个是很多人推荐的一种循环方式,和上面的那个 for
差不多。用起来比较方便,阅读性好。仅支持数组、集合、set等一些类型。可用 break
语句来结束循环。
语法
for (声明语句 : 表达式) {
//代码句子
}
声明语句:即是声明元素类型
表达式:可以是一个可循环的值,也可是一个返回可循环值的方法
例子
利用 for
循环遍历 arrays
数组
int[] arrays = {10, 20, 30, 40, 50};
for (int i : arrays) {
System.out.println(i);
}
结果
10
20
30
40
50
break
主要用在 循环语句
或者 switch
语句中,用来跳出整个语句块。
语法
for (;;) {
//可在该代码块内编写
break;
}
例子
利用 for
循环遍历 arrays
数组, 如果等于 30 结束循环
int[] arrays = {10, 20, 30, 40, 50};
for (int i : arrays) {
if (i == 30) {
break;
}
System.out.println(i);
}
结果
10
20
continue
适用于任何循环控制结构中。作用是让程序立刻跳转到下一次循环的迭代。
在 for
循环中,continue
语句使程序立即跳转到更新语句。
在 while
或者 do…while
循环中,程序立即跳转到布尔表达式的判断语句。
语法
for (;;) {
//可在该代码块内编写
continue;
}
例子
利用 for
循环遍历 arrays
数组, 如果等于 30 则不打印
int[] arrays = {10, 20, 30, 40, 50};
for (int i : arrays) {
if (i == 30) {
continue;
}
System.out.println(i);
}
结果
10
20
40
50
注:该文章主要参照菜鸟教程: Java 循环结构