第二章:基本语法
12.循环
循环语句功能:在某些条件满足的情况下,反复执行特定代码的功能。
循环语句的四个组成部分:循环变量的初始化、循环条件部分、循环体部分、循环变量的更新。
循环语句分类:while循环、do/while循环、for循环。
①while循环
语法如下:
while(逻辑表达式){语句;……;先判断表达式的值,若返回true,则执行该语句,然后再次判断并反复执行,直到条件不成立为止。}
/*
* while语法:
* while(逻辑表达式){
* 判断当逻辑表达式为true时,则执行后面的语句,然后再次判断,并反复执行。
* }
* 先判断再执行
* */
public class WhileDemo {
public static void main(String[] args){
int i = 1;
while(i<10){
System.out.println(i);
i += 1;
}
//死循环
while(true){
System.out.println("死循环");
}
}
}
②do while循环
语法如下:
do{
循环体
}while(逻辑表达式)
do while循环:先执行语句再判断逻辑表达式的值,若为true,再执行语句,否则结束循环。
/*do while语法:
* do{
* 语句 先执行一边语句再进行判断,若是表达式为true,则再次执行语句
* }while(逻辑表达式)
*
* do while至少执行一次,而while可能一次都不会执行
* */
public class DoWhileDemo {
public static void main(String[] args){
int a = 3;
do{
System.out.println(a);
++a;
}while(a<10);
}
}
③for循环
语法如下:
for(初始化变量;条件;变量迭代){
循环体;
先执行初始化变量,再进行条件判断若条件表达式的值为true,再执行循环体,最后进行变量迭代,并反复执行这个过程,直到条件表达式的值变为false。
}
for循环体除了标准式之外,还有两种变式,和一种死循环。
for的死循环语句,相比于while的死循环语句,由于while循环体需要进行判断,因此for死循环更加的效率。
如下:
/*
* for语法:
* for(初始化变量;条件;变量迭代){
* 循环体;
* }
*
* */
public class ForDemo {
public static void main(String[] args){
int i;
//原始类型
for(i=0;i<10;i++){
System.out.println("原始类型");
}
//变形一
int i2 = 0;
for(;i2<10;i2++){
System.out.println("变形一");
}
//变形二
int i3 = 0;
for(;i3<10;){
i3++;
System.out.println("变形二");
}
//死循环
for(;;){
System.out.println("死循环");
}
//while的死循环比for的死循环多了几条判断表达式的指令,因此for死循环更加的效率。
}
}
13.break & continue
break:用于终止某个语句块的执行。用在循环体语句中,可以强行退出循环。
break终止语句块有两种类型:①只能终止紧挨的上层语句块 ②通过标签终止指定语句块。
如下:
int i = 1;
//当i = 5跳出这个循环
while(i <= 10){
System.out.println(i);
i++;
if(i == 5){
break;
}
}
int j = 0;
//当i = 5跳出这个循环
number1:while(j < 10){
if(j == 5){
break number1;
}
System.out.println(j);
j++;
}
continue:用在循环语句体中,用于终止某次循环过程,跳过循环体中continue语句下面未执行的循环,开始下一次循环过程。
如下:
int k = 0;
//当i = 5,跳过这次循环
while(k < 10){
if(k == 5){
continue;
}
System.out.println(k);
k++;
}
14.嵌套循环
将一个循环放在另一个循环体内,就形成了嵌套循环。其中,for,while,do……while均可以作为外层循环和内层循环。
实际上,嵌套循环就是把内层循环当成外层循环的循环体。当只有内层循环的循环条件为false时,才会完全跳出内层循环,才可结束外层的当次循环,开始下一次的循环。
结束外层循环:如果需要从多层循环跳出,则需要使用标签,先定义再使用。
如下:
/*
* 嵌套语句,for,do while ,while
*
* label: while(逻辑表达式){
* 循环体
* break:label;
* }
* */
public class NestedDemo {
public static void main(String[] args) {
for (int i = 1; i < 10; i++) {
System.out.println(i);
for (int j = 1; j < 10; j++) {
System.out.println(j);
if (j == 5) {
break;
}
}
}
//使用标签
out:
for (int k = 0; k < 10; k++) {
System.out.println("k::" + k);
for (int l = 0; l < 10; l++) {
System.out.println("l::" + l);
if (l == 5) {
break out;
}
}
}
}
}
若有错误,欢迎私信指正。