1、循环结构

  • while循环
  • do…while循环
  • for循环
  • 在java5中引入了一种主要用于数组的增强型for循环

2、while循环

  • while循环是最基本的循环,其结构为:
while(布尔表达式){
    //循环内容
}
  • 只要布尔表达式为true,循环就会一直执行下去。
  • 我们大多数情况是会让循环停止下来的,因此需要一个让表达式失效的方式来结束循环。
  • 少部分情况需要循环一直进行,比如服务器的请求响应监听等
  • 循环条件一直为true就会造成无限循环【死循环】,我们正常的业务编程中应尽量避免死循环,会影响程序性能或程序卡死崩溃
  • 用while实现:计算1+2+3+…+100=?
public class whiledemo03 {
    public static void main(String[] args) {
        //计算1+2+3+...+100=?
        int i = 0;
        int sum = 0;

        while (i<=100) {
            sum = sum + i;
            i++;
        }
        System.out.println(sum);
    }
}

3、do…while循环

  • do…while循环和while循环相似,不同的是,do…while循环至少会执行一次
do{
    //代码语句
}while(布尔表达式);
  • while和do-while的主要区别
  • while先判断后执行,dowhile时候先执行后判断
  • Do…while总是保证循环体会被至少执行一次!
  • 用do-while实现:计算1+2+3+…+100=?
public class dowhiledemo01 {
    public static void main(String[] args) {
        int i = 0;
        int sum =0;

        do {
            sum = sum +i;
            i++;
        }while (i<=100);
        System.out.println(sum);
    }
}

3、For循环

  • for循环语句是支持迭代的一种通用结构,是最有效、最灵活的循环结构。
  • for循环执行的次数是在执行前就确定的。语法格式如下:
for(初始化;布尔表达式;更新){
    //代码语句
}
  • 示例语句:
public class fordemo01 {
    public static void main(String[] args) {
        int a = 1;//初始化条件

        while (a<=100) {//条件判断
            System.out.println(a);//循环体
            a += 2;//迭代,相当于a=a+2
        }

            System.out.println("while循环结束");

            //初始化//条件判断//迭代
            for (int i = 1;i<=100;i++){
                System.out.println(i);
            }
            System.out.println("for循环结束");

            

    }
}
  • 练习1:计算0到100之间的奇数和偶数的和
public class fordemo02 {
    public static void main(String[] args) {
        //练习1:计算0到100之间的奇数和偶数的和
        
        int oddsum = 0;
        int evensum = 0;

        for (int i = 0; i <= 100; i++) {
            if (i%2!=0){//奇数
                oddsum+=i;
            }else {//偶数
                evensum+=i;
            }
        }
        System.out.println("奇数的和:"+oddsum);
        System.out.println("偶数的和:"+evensum);
    }
}
  • 练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
public class fordemo03 {
    public static void main(String[] args) {
        //练习2:用while或for循环输出1-1000之间能被5整除的数,并且每行输出3个
        for (int i = 0; i <= 1000; i++) {
            if(i%5==0){
                System.out.print(i+"\t");
            }
            if (i%(5*3)==0){//每行
                System.out.println("\n");
            }
            //println 输出完会换行
            //print 输出完不会换行
        }
        
    }
}
  • 练习3:打印九九乘法表(嵌套for循环)
import sun.security.rsa.RSAUtil;

public class fordemo04 {
    public static void main(String[] args) {
        //练习3:打印九九乘法表
        //1、我们先打印第一列
        //2、我们把固定的1再用1个循环包起来
        //3、去掉重复项,i<=j
        //4、调整样式

        for (int j = 1; j <= 9; j++) {

            for (int i = 1; i <= j; i++) {
                System.out.print(j + "*" + i + "=" + (j * i)+"\t");
            }
            System.out.println();
        }
    }
}