循环结构
while循环
- 是最基本的循环
- 只要布尔表达式为true,就会一直执行下去。
- 让循环停下来只需要让表达式失效的方式来结束循环。
- 少数情况需要让循环一直执行下去,比如服务器的请求响应监听。
- 循环条件一直为true就会造成无限循环(死循环),我们正常业务编程中尽量避免死循环。
package struct;
public class WhilDemo01 {
public static void main(String[] args) {
//输出1~100
int i =0;
while(i<100){
i++;
System.out.println(i);
}
}
}
do…while循环
- 对于while语句而言,如果不满足条件,就不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。
- do…while循环和while循环相似,不同的是,do…while循环至少会执行一次。
- 区别
- while先判断后执行。dowhile是先执行后判断!
- Do…while总是保证循环体会至少执行一次!这是他们的主要差别。
package struct;
public class DoWhileDemo02 {
public static void main(String[] args) {
//两个的区别
int a = 0;
while (a<0){
System.out.println(a);//不执行
a++;
}
System.out.println("====================");
do {
System.out.println(a);//执行结果为0
a++;
}while (a<0);
}
}
For循环
-
虽然所有的循环结构都可以用while 或do…while表示,但java提供了另一种语句——for循环,使一些循环结构变得更加简单。
-
for循环语句是支持迭代的一种通用结构,是最有效的、最灵活的循环。
-
for循环执行的次数是在执行前就确定的。
-
for(初始化;布尔表达式==条件判断;更新){ //代码语句 }
package struct; public class ForDemo01 { public static void main(String[] args) { int a = 1;//初始化条件 while (a < 10) {//条件判断 System.out.println(a);//循环体 a+=2;//迭代 } System.out.println("while循环结束"); //初始值;条件判断;迭代 for (int i = 0; i < 10; i++) { System.out.println(i); } System.out.println("for循环体结束"); /* 关于For循环有以下几点说明: 最先执行初始化步骤。可以声明一种类型。但可初始化一个或多个循环控制变量,也可以是空语句。 然后,检测布尔表达式的值。如果为true。循环体被执行。如果为false。循环终止。开始执行循环体后面的语句。 执行一次循环后,更新循环控制变量(迭代因子控制循环变量的增减)。 再次检测布尔表达式。循环执行上面的过程。 */ //死循环 for (; ; ) { } } }
在java 5中引入了一种主要用于数组的增强型for循环
-
java5引入了一种主要用于数组或集合的增强型For循环
-
java增强for循环语法格式:
-
for(声明语句:表达式) { //代码语句 }
package struct; public class ForDemo05 { public static void main(String[] args) { int [] numbers ={10,20,30,40,36};//定义一个数组 for (int i =0; i< 5;i++){ System.out.println(numbers[i]); } System.out.println("====================="); for (int x:numbers){ System.out.println(x); } } }
break & continue
- break在任何循环语句的主体部分,均可用break控制循环的流程。break用于强行退出循环,不执行循环中剩余的语句。(break语句也在Switch语句中使用)
- continue语句用在循环语句体中,用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否循环的判定。
package struct;
public class BreakDemo {
public static void main(String[] args) {
int i = 0;
while (i < 100) {
i++;
System.out.println(i);
if (i == 10) {
break;//跳出当前循环
//在Switch中用break是防止case穿透
}
}
}
}
package struct;
public class ContinueDemo {
public static void main(String[] args) {
int i = 0;
while (i < 100) {
i++;
if (i%10 == 0) {
System.out.println();
continue;
}
System.out.print(i);
}
}
}