Java的循环结构要相对于Java的顺序结构来说明。程序的运行时由上到下的顺序结构,但是有的程序需要特殊的处理,其不止需要执行一次,这样就需要使用到循环结构。
Java循环结构:
Java循环结构包括三种:for循环 while循环及do...while循环
for循环及增强否for循环:
for循环的语法格式如下:
for(初始化;布尔表达式;更新运算){
//代码语句
}
for循环的工作原理是这样的:
首先执行初始化步骤,初始化是为了得到一个判定条件的值,用于后面的布尔表达式
接着使用前面初始化的值在布尔表达式里面进行比较,如果布尔表达式的结果是真,那么就执行代码语句,代码语句执行完成后,执行更新运算,这里更新的是前面初始化的那个值,然后在进行布尔表达式的运算,如此循环,直到布尔表达式运算结果为假,则跳出循环.
class circilationToFor {
public static void main(String[] args) {
int i;//声明一个int变量 当然你也可以在for()里面进行声明和初始化
for (i = 0; i < 10; i++) {
System.out.println("是否 "+i+" <10 ? :" + (i < 10) + " 本次循环的i值为: " + i);
}
System.out.println("是否 "+i+" <10 ? :" + (i < 10) +" 跳出循环的i值为: " + i);
}
}
输出:
是否 0 <10 ? :true 本次循环的i值为: 0
是否 1 <10 ? :true 本次循环的i值为: 1
是否 2 <10 ? :true 本次循环的i值为: 2
是否 3 <10 ? :true 本次循环的i值为: 3
是否 4 <10 ? :true 本次循环的i值为: 4
是否 5 <10 ? :true 本次循环的i值为: 5
是否 6 <10 ? :true 本次循环的i值为: 6
是否 7 <10 ? :true 本次循环的i值为: 7
是否 8 <10 ? :true 本次循环的i值为: 8
是否 9 <10 ? :true 本次循环的i值为: 9
是否 10 <10 ? :false 跳出循环的i值为: 10
说道for循环就不得不提一下增强for循环:
增强for循环是由Java5开始引入的,增强for循环是用于数组类型,格式如下:
for(声明语句 : 表达式)
{
//代码句子
}
声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
class CircilationToEnhanceFor {
public static void main(String[] args) {
int[] i = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 0};
//增强for循环的写法
for (int value : i) {
System.out.println("增强for循环遍历的i数组本次值为: "+value);
}
System.out.println("===================我是分割线===================");
//一般for循环的写法
for(int a = 0;a<i.length;a++){
int value = i[a];
System.out.println("普通for循环遍历的i数组本次值为: "+value);
}
}
}
输出:
增强for循环遍历的i数组本次值为: 1
增强for循环遍历的i数组本次值为: 2
增强for循环遍历的i数组本次值为: 3
增强for循环遍历的i数组本次值为: 4
增强for循环遍历的i数组本次值为: 5
增强for循环遍历的i数组本次值为: 6
增强for循环遍历的i数组本次值为: 7
增强for循环遍历的i数组本次值为: 8
增强for循环遍历的i数组本次值为: 9
增强for循环遍历的i数组本次值为: 0
===================我是分割线===================
普通for循环遍历的i数组本次值为: 1
普通for循环遍历的i数组本次值为: 2
普通for循环遍历的i数组本次值为: 3
普通for循环遍历的i数组本次值为: 4
普通for循环遍历的i数组本次值为: 5
普通for循环遍历的i数组本次值为: 6
普通for循环遍历的i数组本次值为: 7
普通for循环遍历的i数组本次值为: 8
普通for循环遍历的i数组本次值为: 9
普通for循环遍历的i数组本次值为: 0
其结果是一样的,但是对于foreach来说更加的方便.
while循环:
while是一种很简单的循环结构:
while( 布尔表达式 ) {
//循环内容
}
只要布尔表达式的计算结果为真,则会进入循环内容,循环内容结束后继续检查布尔表达式,如此重复,知道布尔表达式输出假.
class CircilationToWhile {
public static void main(String[] args) {
byte i = 0;
while(i<10) {
System.out.println("(i<10) ? "+(i<10)+ " while循环内容为: " +i);
i++;
}
//当(i<10)为fals时跳出循环.
System.out.println("(i<10) ? "+(i<10)+ " i= " +i);
}
}
输出:
(i<10) ? true while循环内容为: 1
(i<10) ? true while循环内容为: 2
(i<10) ? true while循环内容为: 3
(i<10) ? true while循环内容为: 4
(i<10) ? true while循环内容为: 5
(i<10) ? true while循环内容为: 6
(i<10) ? true while循环内容为: 7
(i<10) ? true while循环内容为: 8
(i<10) ? true while循环内容为: 9
(i<10) ? false i= 10
do…while 循环
do…while 循环循环与while循环唯一不同的地方在于,无论如何do…while 循环都会干一次! 对,无论怎样都会干一次的.干了再说
class CircilationToDoWhile {
public static void main(String[] args) {
byte i = 10;
do {
//无论如何都会干一次的,无论你原本不愿意还是愿意
System.out.println("(i<10) ? " + (i < 10) + " i= " + i);
i++;
} while (i < 10);
//当(i<10)为fals时跳出循环.
System.out.println("(i<10) ? "+(i<10)+ " i= " +i);
}
}
输出:
(i<10) ? false i= 10
(i<10) ? false i= 11
循环讲完了我们需要老认识一下控制循环的两个Java关键字
break:
break的作用是跳出循环
class Control {
public static void main(String[] args) {
int i;
//一层for循环
for (i = 0; i < 10; i++) {
System.out.println("还没有执行break,执行到了这里");
break;
}
System.out.println("当输出了↑↑↑以后 ,执行了break,没有进行i++运算,我跳出循环");
}
}
输出:
还没有执行break,执行到了这里
当输出了↑↑↑以后 ,执行了break,没有进行i++运算,我跳出循环
class Control1 {
public static void main(String[] args) {
//多层循环
int a;
int c;
for (a = 0; a < 10; a++) {
System.out.println("第" + a + "次外层for循环===========");
for (c = 0; c < 10; c++) {
System.out.println(" 第" + c + "次里层for循环 跳出!");
break;//brake语句只是会结束他所在的循环体
}
}
}
}
输出:
第0次外层for循环===========
第0次里层for循环 跳出!
第1次外层for循环===========
第0次里层for循环 跳出!
第2次外层for循环===========
第0次里层for循环 跳出!
第3次外层for循环===========
第0次里层for循环 跳出!
第4次外层for循环===========
第0次里层for循环 跳出!
第5次外层for循环===========
第0次里层for循环 跳出!
第6次外层for循环===========
第0次里层for循环 跳出!
第7次外层for循环===========
第0次里层for循环 跳出!
第8次外层for循环===========
第0次里层for循环 跳出!
第9次外层for循环===========
第0次里层for循环 跳出!
class Contro2 {
public static void main(String[] args) {
int d;
int e;
for (d=0;d<10;d++){
System.out.println("第" + d + "次外层for循环===========");
for(e=0;e<10;e++){
System.out.println(" 第"+e+"次里层for循环");
break;//brake语句只是会结束他所在的循环体
}
break;
}
}
}
输出:
第0次外层for循环===========
第0次里层for循环
continue 关键字
continue 关键字是标识结本次循环,进入下一次循环,
class Contro3{
public static void main(String[] args) {
int i;
for (i=0;i<10;i++){
System.out.println(i+ " 本循环不输出下一个语句.");
continue;
}
}
输出:
0 本循环不输出下一个语句.
1 本循环不输出下一个语句.
2 本循环不输出下一个语句.
3 本循环不输出下一个语句.
4 本循环不输出下一个语句.
5 本循环不输出下一个语句.
6 本循环不输出下一个语句.
7 本循环不输出下一个语句.
8 本循环不输出下一个语句.
9 本循环不输出下一个语句.
在Java中很多地方都用得到循环结构,可以结合使用它们.
循环先这样吧,后面和数组,集合在配合描述.