循环结构语句
循环语句是为了让代码有条件或者无条件的重复执行
循环结构三类:
1.while循环结构
2.do...whlie循环结构
2.for循环结构(foreach循环结构,增强版的for循环结构)
1 while循环结构
whlie循环结构,与if结构类型(判断条件),while也需要接收一个判断的条件,需要是一个boolean类型的值,判断的条件可扩展比较强。
如果判断的条件为真,则循环执行判断代码块中的内容, 使用{}进行包裹的内容,称之为循环体。
while循环结构的语法格式:
while(判断条件) {
循环体
}
总结:
首先检测while循环结构中的判断条件,是否为true,如果条件为true则执行循环体中的代码块;代码块执行完毕后,会继续将当前的whlie循环条件进行判断,如果条件满则则继续重复执行以上的操作。只要出现判断条件的结果值为false则,终止当前的while循环结果,跳过了循环体对应的代码块中的内容。
要保证while循环的条件是有终止条件的,一般情况下在循环体内容来控制循环的条件发生改变。防止判断的条件用真,则会陷入死循环的状态。
2 do...while循环结构
是一个循环结构,结构上和while循环也是极为类型的。
do...while循环的语法结构:
do {
循环体
} while(判断条件);
语法特点:
1.整个do...while循环结构需要使用“;”作为语句的结尾;
2.在执行do...while结构的时候,首先直接进入到{}内部,即直接执行循环结构;
3.再去判断条件是否成立,如果整理则再次进入到循环的结构体内容执行代码;反之,则只写退出do...while循环结果,之后结构之后代码块。
3 while循环和do...while循环区别
1.while循环首先做条件的判断,如果条件不成立则不会执行循环代码块中的内容
2.do...while循环首先先将循环代码块中的内容执行一遍,再去判断循环条件是否成立。
3.do...while循环结构无论条件是否成立,最终都会被执行一次循环体中内容。
4 for循环结构
while循环和do...while在判断的条件只有两种状态才会只用这种结构。
for循环结果,用于操作循环次数固定(循环次数已知)的循环操作。
for循环结构语法格式:
例子:for (i=1;i<=5;i++)
for(循环初始化①;循环执行条件②;循环步长④){
循环体③
}//执行顺序为1234 234 234 234....
for循环的语法解析过程:
第一步:先将1执行(初始化操作)
第二步:执行2操作(如果这个判断条件不成立则执行结束程序,如果条件成立则往后执行)
第三步:执行4操作(循环体执行完成了一遍)
第四步:执行3操作(控制整个循环的终止条件,操作表达式,操作的是初始化的变量)
第五步:执行2操作(判断条件),重复操作第三步
第六步:退出for循环结果
案例:使用for循环结构,求出1-100之间所有的数之和。分析:循环的次数是固定的,建议使用for循环结构完成。
public class Example03 {
public static void main(String[] args) {
int count = 0;
for(int i = 1; i <= 100; i++) {
count += i;
}
System.out.println("1-100的和:" + count);
}
}
总结:
1.当循环的次数固定的时候采用for循环结果来操作。
2.for循环操作的顺序:初始化表达式-判断条件-循环体-操作表达式-判断条件
5 循环嵌套
将循环结构中嵌套新的循环结果。嵌套测次数没有要求(大多数场景两次嵌套)。可以将任意循环嵌套任意循环。大多数的循环嵌套都是for循环嵌套for循环。
for循环嵌套for循环语法结构:
for(初始化表达式;判断条件;操作表达式) {
....
for(初始化表达式;判断条件;操作表达式) {
循环体
}
....
}
使用for循环嵌套来完成直角三角形的打印输出(循环的次数是固定的)。
public class Example04 {
public static void main(String[] args) {
/**
* 一个变量的作用域(使用范围),取决于这个变量之前的第一个
* {括号,
*/
// 控制打印的行数
for (int i = 1; i<=9; i++) {
// 当前行的*对应的个数,与行数是匹配的
// 外层循环此时的i取值决定了内层循环的每次的次数
for (int j = 1; j<=i;j++) {
/**
* print():将参数的内容打印输出,不会换行
* println():将参数的内容打印输入,之后并进行换行操作
*/
System.out.print("*");
}
System.out.println();
}
}
}
6 跳转语句
经常在循环结构中,需要进行跳转操作,使用跳转语句来解决这个问题。提供了两个关键字:
-
break:
(1)如果在switch结果中使用,终止某个case语句,并且会退出当前的switch语句的结果。
(2)如果在循环结果中使用,直接终止掉当前循环结果,即退出循环结果。
(3)如果break出现在一个嵌套循环的内容,跳出内层的循环,而不会跳出外部的循环。
-
continue:
可以结合循环语句使用,跳过本次的循环,执行下一次循环结构。
public class Example05 {
public static void main(String[] args) {
int x = 1;
while(x<4) {
System.out.println("x=" + x);
if (x == 3) {
break; // 如果x的值取值为3则直接跳出while循环结构
}
x++; // 自增操作
}
}
}
在双层循环中使用break案例:
public class Example06 {
public static void main(String[] args) {
for (int i = 1; i <= 9; i++) {
for (int j=1; j<=i; j++) {
if (i>=4) {
break;
}
System.out.print("*");
}
// 换行
System.out.println();
}
}
}
求1-100的奇数所对应的和。
public class Example07 {
public static void main(String[] args) {
// 求奇数的和
int num = 0;
for (int i = 1; i <= 100; i++) {
if (i%2==0) { // 表示这是一个偶数
// 跳跳过本次循环,进入下次循环
// 从continue所对应的当前,跳过后续所有的代码,然后再进入下次循环
continue;
}
num += i;
}
}
}