Java中有三种主要的循环结构:
- while循环
- do…while循环
- for循环
do…while循环
对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。
for循环
虽然所有循环结构都可以用while或者do...while表示,但Java提供了另一种语句 —— for循环,使一些循环结构变得更加简单。
关于for循环有以下几点说明:
- 最先执行初始化步骤。可以声明一种类型,但可初始化一个或多个循环控制变量,也可以是空语句。
- 然后,检测布尔表达式的值。如果为true,循环体被执行。如果为false,循环终止,开始执行循环体后面的语句。
- 执行一次循环后,更新循环控制变量。
- 再次检测布尔表达式。循环执行上面的过程。
- 循环的对比
-
1.语法格式不同
2.执行顺序不同
while循环:先判断循环条件,再执行循环体。如果条件不成立,退出循环。
do-while循环:先执行循环体,再判断循环条件,循环体至少执行一次。
for循环:先执行变量初始化部分,再判断循环条件,然后执行循环体,最后进行循环变量的计算。如果条件不成立,跳出循环。
3.适用情况不同
for循环:
import java.util.*;
public class For{
public static void main(String[]args){
//写法1
int [] arr={1,2,3,4,5};
for(int i=0;i<arr.length;i++){
System.out.println(arr[i]);
}
System.out.println("--------");
//写法2
int j=0;
for(;;){
if(j==arr.length)
break;
System.out.println(arr[j]);
j++;
}
System.out.println("--------");
//写法3(不会有越界的问题)
for(int i:arr){
System.out.println(i);
}
//比较
String[]names={"huo","hui","chao"};
for(int i=0;i<names.length;i++){
System.out.println(names[i]);
}
System.out.println("--------");
for(String name:names)
{
System.out.println(name);
}
}
}
while循环:
import java.util.*;
public class While{
public static void main(String[]args){
String[]arrs={"ab","abc","aszx","xyz","jkl","tyu"};
int i=0;
while(i<arrs.length){
System.out.println(arrs[i]);
i++;
System.out.println(i);
}
System.out.println("---------");
int j=0;
while(j<arrs.length){
System.out.println(arrs[j]);
j++;
System.out.println(j);
if(j==2)
break;//break:终止循环 只能跳出一层循环
}
System.out.println("---------");
int h=0;
while(h<arrs.length){
System.out.println(arrs[h]);
h++;
if(h==3)
continue;//continue:终止当前循环 接着进行下一次循环
System.out.println(h);
}
}
}
do-while循环:
import java.util.*;
public class Dowhile{
public static void main(String[]args){
int i=10;
while(i>11){
System.out.println("while i="+i);
}
System.out.println("outer:"+i);
do{
System.out.println("do while i="+i);
}while(i>11);
}
}
打印99乘法口诀
for(int i=1; i<=9; i++){
for(int j=1; j<=i; j++){
System.out.print(j +"*"+ i+"="+j*i+" ");
}
System.out.println("");
}