循环结构
- while 循环
- do...while 循环
- for 循环
- 在Java5中引入了一种主要用于数组的增强型for循环。
while循环
- while是最基本的循环,它的结构为:
while(布尔表达式){
// 循环
}
- 只要布尔表达式一直为true,就会一直执行下去。
- 大多数情况下会让循环停止下来,我们需要一个让表达式失效的方式来结束循环。
- 少部分情况需要循环一直执行,如服务器请求响应监听等。
- 循环条件一直为true就是造成死循环,正常业务编程中要尽量避免死循环。否则会影响程序性能或者造成程序卡死崩溃。
//输出 1~100
int i = 0;
while(i<100){
i++;
System.out.println(i);
}
//计算 1+2+...+100
int i = 0;
int sum = 0;
while(i<100){
i++;
sum += i;
}
System.out.println(sum);
do...while循环
- 对于while语句而言,如果不满足条件,则不能进入循环。
- while是先判断条件然后再执行。
- do...while先执行一次后判断是否满足条件。
do{
//代码语句
}while(布尔表达式);
// 计算 1+2+...+100
int i = 0;
int sum = 0;
do {
i++;
sum += i;
}while(i<100);
System.out.println(sum);
for循环
- for循环的循环执行次数在执行前就确定的。
for(初始化;布尔表达式;更新){
// 代码语句
}
练习1:
// 计算0~100之间的奇数和、偶数和
public class Main {
public static void main(String[] args) {
int oddsum = 0;//存放奇数累计
int evensum = 0;//存放偶数累计
for (int i = 0; i <= 100; i++) {
if (i % 2 == 0) {
evensum += i;
}else{
oddsum += i;
}
}
System.out.println("偶数和:"+evensum +" 奇数和:"+oddsum);
}
}
练习2:
// 用while或for循环输出1-1000内能被5整除的数,并且每行输出3个
// while
public class Main {
public static void main(String[] args) {
String sum = "";//存放字符串
int i = 0;
int j = 0;
while (i < 1000) {
i++;
if (i % 5 == 0) {
j++;
sum += i + " ";
// 被3整除,换行
if ( 3 == j) {
sum += "\n";
j = 0;
}
}
}
System.out.println(sum);
}
}
// for
public class Main {
public static void main(String[] args) {
int j = 0;
for (int i = 1; i <= 1000; i++){
if (i % 5 == 0) {
System.out.print(i + " ");
j++;
if(3 == j){
System.out.println(); //打印一个回车
j = 0;//复原,每3个一行
}
}
}
}
}
练习3:
public class Main {
public static void main(String[] args) {
//九九乘法表
for(int i=1;i<10;i++){
for (int j=1;j<i+1;j++){
System.out.print(j +" * "+ i + " = " +(i*j)+"; ");
}
System.out.println();
}
}
}
增强for循环
- 声明语句:声明新的局部变量,该变量的类型和数组元素的类型匹配。其作用域限定在循环语句块,其值与此事数组元素的值相等。
- 表达式:表达式是要访问的数组名,或者是返回值为数组的方法。
for(声明语句:表达式){
// 代码句子
}
public class Main {
public static void main(String[] args) {
int[] numbers = {1, 2, 3, 4, 5, 6, 7};
for (int x : numbers) {
System.out.println(x);
}
}
}
break和continue
- break在任何循环语句主体部分,均可以用break强制退出循环,不执行循环中剩余的语句,直接跳出循环。(break也在switch中使用)
- continue语句用在循环语句中,用于终止某次的循环,跳出这次的未执行的语句,接着进行下一次循环。