java流程控制之循环结构

205445xcvbn / 2024-08-23 / 原文

  • while循环
    语法:
while(布尔表达式){
    //循环内容,true就会循环
        }

少数情况下需要一直循环执行,比如说服务器的请求响应监听等。
大多数情况是会让循环停下,一直true会造成死循环,会影响程序性能或造成程序卡死崩溃。

//计算1+2+3……+100=?
public class Demo6while {
    public static void main(String[] args){
        int i=0;//初始化
        int sum=0;//初始化
        while(i<100){
            i=++i;//i++也可以,但上方的布尔表达式要变成(i<=100)之类的
            sum=sum+i;
            System.out.println("每轮加数:"+i);
            System.out.println("总和为:"+sum);
        }//在花括号内是每次循环都输出,在花括号外是false了后再输出
        System.out.println("总和为:"+sum);
    }
}
  • do……while循环
    语法:
do{
    //代码语句
        }while(布尔表达式);
while 先判断后执行
do-while 先执行后判断,总是保证循环被至少执行一次
  • for循环
    for循环执行的次数是在执行前就确定的。
    语法:
for(初始化;布尔表达式;更新){//初始化、布尔表达式、更新都可为空(更新不写默认为i++),此时为死循环
    //代码语句
        }

练习:

//计算0到100之间的奇和与偶和
public class Demo8for1 {
    public static void main(String[] args){
        int a=0;
        int sum1=0;
        int sum2=0;
        for(a=1;a<=100;a++)
        {
            if(a%2==0){
            sum1=sum1+a;
            }else {
            sum2=sum2+a;
        }
    }
    System.out.println("偶数和为:"+sum1);
    System.out.println("奇数和为:"+sum2);
}
}
//输出1到100之间能被5整除的数,并且每行输出3个
public class Demo9for2 {
    public static void main(String[] args){
        for(int i=0;i<=1000;i++){
            if(i%(5)==0){
                System.out.print(i+"\t");//空格
            }
            if (i%(5*3)==0){//每行
                System.out.print("\n");//换行;println()输出一个换一行,print()输出完不换行
            }
        }
    }
}
//打印九九乘法表
public class Dmeo10for3 {
    public static void main(String[] args) {
        for (int j = 1; j <= 9; j++) {
            for (int i = 1; i <= j; i++) {//i<=j,去除重复项
                System.out.print(i + "*" + j + "=" + (j * i)+"\t");
            }
            System.out.println();
        }//i竖轴,j横轴
    }
}
  • 增强for循环
    java5引入了一种主要用于数组或集合的增强型for循环
    语法:
for(声明语句:表达式){
    //代码句子
        }
声明语句 声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。
表达式 表达式是要访问的数组名,或者是返回值为数组的方法。

如:(下部分)

public class Demo11forstrong {
    public static void main(String[] args){
        int[] numbers = {10,20,30,40,50};
        for (int i=0;i<5;i++){
            System.out.println(numbers[i]);
        }//核心一致
        System.out.println("=================");
        for (int x:numbers){
            System.out.println(x);
        }//遍历数组的元素。偷懒的,用来简化上面for循环
    }
}
  • break continue
break 在任何循环语句的主体部分均可使用break控制循环的流程。break用于强制退出循环,不执行循环中剩余语句。
continue 在循环语句中,用来跳过循环中的一部分,接着进行下一次是否执行循环的判定

break

public class Demo12break {
    public static void main(String[] args){
        for(int i=0;i<100;i++){
            System.out.println(i);
            if(i==30){
                break;
            }
        }System.out.println("等");
    }
}

结果为:

continue

public class Demo13continue {
    public static void main(String[] args) {
        for (int i = 0; i <= 100; i++) {
            if (i % 10 == 0) {
                System.out.println();
                continue;
            }
            System.out.println(i);
        }
    }
}

结果为: