目录
一、循环概念
通过某个条件,重复的执行一段逻辑代码
满足循环的条件,循环继续
不满足循环的条件,循环结束
二、while循环
语法:
while(布尔表达式){
逻辑代码(循环结构)
}
执行流程:
先对布尔表达式进行判断,结果为true,则执行逻辑代码
本次执行完毕后,再进行判断,结果仍旧为true,则再次执行逻辑代码
直至布尔表达式的结果为false时,才会退出循环结构,执行后序代码
public class Demo{
public static void main(String args[]){
//循环输出1-10
int i=1;
while(i<=10){
System.out.print(i+"\t");
i++;
}
}
}
三、do-while循环
语法:
do{
逻辑代码(循环操作)
}while(布尔表达式);
执行流程:
先执行一次循环操作之后,再进行布尔表达式的判断
如果结果为true,则再次执行循环操作
如果结果为false,才会退出循环结构,执行后续代码
public class Demo{
public static void main(){
//不管条件如何,先打印一次i,打印至5
int i=1;
do{
System.out.print(i+"\t");
i++;
}while(i<=5);
}
}
四、for循环
语法:
for(初始部分;循环条件(布尔表达式);迭代部分){
//循环操作(逻辑代码)
}
执行流程:
首次执行初始部分(初始部分仅在开始时执行一次);
对布尔表达式进行判断,结果为true,执行逻辑代码;
本次执行完毕后,执行迭代部分,再次判断,结果仍为true,则再次执行逻辑代码
直至布尔表达式的结果为false时,才会退出循环结构,执行后续代码
public class Demo{
public static void main(String args[]){
//循环输出1-10
for(int i=1;i<=10;i++){
System.out.print(i+"\t");
}
}
}
五、流程控制关键字
break; 终止、跳出swtich、循环结构
public class Demo{
public static void main(String args[]){
for(int i=1;i<=10;i++){
if(i==5){
break;
}
System.out.println("当前是第"+i+"次循环");
}
}
}
continue; 结束本次,进入下一次循环
public class Demo{
public static void main(String args[]){
for(int i=1;i<=10;i++){
if(i==5){
continue;
}
System.out.println("当前是第"+i+"次循环");
}
}
}
六、嵌套循环
概念:在一个完整的循环结构中,嵌套另一个完整的循环结构
public class Demo{
public static void main(String args[]){
for(int i=1;i<6;i++){
for(int j=1;j<6;j++) {
System.out.print(i+"行"+j+"列"+"\t");
}
System.out.println();
}
}
}
七、多重循环中的流程控制关键字的使用--标记法
我们来看两段不同的break代码块的区别 (如下):
第一段:
public class Demo{
public static void main(String args[]){
for(int i=1;i<6;i++){
for(int j=1;j<6;j++) {
System.out.print(i+"行"+j+"列"+"\t");
if(j==3) {
break;
}
}
System.out.println();
}
}
}
当循环中的 j ==3 之后后面的循环就不执行了
在这里,break没有加标记,默认跳出当前循环(内层循环)
在每一行 j==3 时都跳出循环
第二段:(对break进行标记)
public class Demo{
public static void main(String args[]){
a: for(int i=1;i<6;i++){
for(int j=1;j<6;j++) {
System.out.print(i+"行"+j+"列"+"\t");
if(j==3) {
break a;
}
}
System.out.println();
}
}
}
这里对 break 进行了 a 标记---(标记的符号在合理的范围内可以随意定义标记符号)
此时,将 break 标记到了外层循环,当代码执行到break是不会再是默认的跳出内层的J循环了,而是跳到被标记的外层i循环,这里是直接使整个循环结束
------------------------------------------------------------------------------------------------------
我们来看两段不同的continue代码块的区别 (如下):
第一段:
public class Demo{
public static void main(String args[]){
for(int i=1;i<6;i++){
for(int j=1;j<6;j++) {
if(j==3) {
continue;
}
System.out.print(i+"行"+j+"列"+"\t");
}
System.out.println();
}
}
}
这里对break的代码改写,得到continue的代码;
更改了System.out.print(i+"行"+j+"列"+"\t");语句的位置
当执行到continue语句时,是跳过当前循环,
循环内部continue后面的代码就不执行了
所以在j==3时,遇到continue,后面的输出语句跳过不输出,直接执行j==4
得到如下运行结果
第二段:(标记)
public class Demo{
public static void main(String args[]){
a:for(int i=1;i<6;i++){
for(int j=1;j<6;j++) {
if(j==3) {
continue a;
}
System.out.print(i+"行"+j+"列"+"\t");
}
System.out.println();
}
}
}
这里将continue直接由内层循环标记到外层循环,当j==3时,直接跳过j==3、4、5的循环,进入到下一次的i循环,也还导致了换行代码块的失用