循环结构的功能是将一段代码执行多次。
循环结构可以使用for循环、while循环和do-while循环,在JDK5.0中,新增了for-each循环,用的最多的是for循环。
for循环:
for循环的基本结构:
for(表达式1;表达式2;表达式3){
//循环体
}
表达式1用于初始化,在整个循环过程中只执行一次;表达式2是条件,用来判断是否继续执行循环,如果为true,则继续循环,否则结束循环;表达式3在每次循环完成之后执行,主要的作用是修改循环变量,循环多少次就会执行多少次;循环体就是要循环执行的部分。注意:表达式之间用分号隔开。
例:
for(inti=0;i<10;i++){
System.out.print(i+“ ”);
}
i可以在外面定义,如:
inti;
for(i=0;i<10;i++){
System.out.print(i+“ ”);
}
运行结果:0 1 2 3 4 5 6 7 8 9
分析:inti=0这段代码在循环过程中只执行一次,然后判断i是否小于10,如果小于,执行循环体,输出i的值和一个空格,然后i自增1位。当i增加到10的时候,这个时候循环的条件已不成立,程序退出该循环。
while循环:
while循环的基本结构:
while(表达式){
//循环体
}
while循环比for循环更容易理解,当表达式的值为true时,执行循环体中的代码,为false时退出循环。
例:
inti=0;
while(i<10){
System.out.println(i+“ ”);
i++;
}
运行结果:0 1 2 3 4 5 6 7 8 9
do-while循环:
do-while循环的基本结构:
do{
//循环体
}(表达式);
do-while循环和while循环差不多,都是表达式的值为true时,执行循环体中的代码,为false时退出循环,它与while循环的区别在于第一次循环的时候,while循环中的表达式为false时直接退出循环,而do-while循环则是先执行循环体,在根据表达式的值是否继续执行。
例:
inti=10;
do{
System.out.print(i+“ ”); //如果用while循环,这段代码一次都不执行
i++;
}while(i<10);
运行结果:10
for-each循环:
for-each循环是JDK5.0新加的特性,它主要用于简化数组和集合的循环遍历,集合在以后会学习,这里主要讲解如何用for-each循环遍历数组。
for-each的基本结构:
for(表达式){
//循环体
}
例:
int[] a={4,2,5,1,3}; //这里的数组可以使任意类型,如String[]、char[]等
for(int i:a){ /* i的类型是由数组的类型决定的,如果上面是String数组,则要写成
for(String s:a) ,冒号前面的变量名由自己定义*/
System.out.print(i+“ ”);
}
运行结果:4 2 5 1 3
分析:由结果可以知道该循环输出了数组中的内容,循环的过程是将数组中的值依次赋值给i,循环的次数由数组的长度决定。
多重循环:
各种循环可以相互嵌套使用,组成多个循环,如:
for(inti=0;i<2;i++){
for(int j=0;j<2;j++){
System.out.println(“i=”+i+“,j=”+j);
}
}
运行结果:
i=0,j=0
i=0,j=1
i=1,j=0
i=1,j=1
分析:由结果可知,内循环的执行次数由外循环决定,内循环执行一次循环完毕之后,外循环才开始执行下一次循环。任何循环都可以和别的循环嵌套执行,如for和while等。
流程跳转语句:
在Java中,可以用break、continue和return语句控制流程的跳转。
break:
在学习switch的时候就用到过break,它的作用是终止当前循环并退出,在其他循环中同样适用。
例:
inti=0;
while(true){ //直接写入true时,如果没有退出语句,该循环会一直运行,造成死循环
if(i>10){
break;
}
System.out.print(i+“ ”);
i++;
}
运行结果:0 1 2 3 4 5 6 7 8 9 10
continue:
continue的作用和break不同,它只终止当前的一次循环,让循环从下一次开始执行。
例:打印1~10以内的奇数
for(inti=1;i<=10;i++){
if(i%2==0){ //能被2整除的说明是偶数,不用再往下执行,直接开始下次循环
continue;
}
System.out.print(i+“ ”);
}
运行结果:1 3 5 7 9
return:
return的作用和break相似,也是直接终止循环并退出,只不过return除了退出循环它还直接退出该方法,由于方法是后面的知识,所以return在这里不做讲解,留到以后再进行讲解。