Day07-循环结构


循环结构

一.while循环

while是最基本的循环,它的结构为:

while(布尔表达式){
    //循环内容
}

只要布尔表达式为true,循环就会一直进行下去

我们大多数情况是会让循环停止下来的,我们需要让一个表达式失效的方式来结束循环

少部分情况需要循环一直进行,比如服务器的请求响应监听等

循环条件一直为true就会造成无限循环【死循环】。我们正常的业务编程中应该尽量避免死循环。会影响程序性能或者造成程序卡死崩溃!

例:

package com.struct;

public class WhileDemo01 {
    public static void main(String[] args) {
        //输出1-100
        int i=0;
        while (i<100){
            i++;
            System.out.println(i);
        }
    }
}

例:

package com.struct;

public class WhlieDemo02 {
    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);//5050
    }
}

二.do...while循环

对于while语句而言,如果不满足条件,则不能进入循环。但有时候我们需要即使不满足条件,也至少执行一次。

do...while循环和while循环相似,不同的是,do...while至少会执行一次

do{
    //代码语句
}while(布尔表达式);

while和do...while的区别:

  • while先判断后执行,do...while是先执行后判断
  • do...while总是保证循环体至少会被执行一次!这是他们的主要差别。

例:

package com.struct;

public class DoWhileDemo {
    public static void main(String[] args) {
        int i=0;
        int sum=0;
        do {
            sum=sum+i;//先执行
            i++;
        }while (i<=100);//后判断
        System.out.println(sum);//5050
    }
}

例:

package com.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);
            a++;
        }while (a<0);
        //输出结果如下:
		//==============
		//0
   }
}

三.for循环!!!

虽然所有的循环结构都可以用while或者do...while表示,但java提供了另一种语句——for循环,使一些循环结构变得更加简单

for循环语句是支持迭代的一种通用结构,是最有效,最灵活的循环结构

for循环执行的次数是在执行前就确定的,语法格式如下:

for(初始化;布尔表达式;更新){
    //代码语句
}

例:

package com.struct;

public class ForDemo01 {
    public static void main(String[] args) {
            //初始化值 条件判断 迭代
        for (int a=1;a<=100;a+=2) {
            //执行一次循环后,更新循环控制变量,再次检测布尔表达式,执行循环内容
            System.out.println(a);
        }
        System.out.println("for循环结束");
       //循环次数.fori(++)
       //循环次数.forr(--)
    }
}

例:

package com.struct;

public class ForDemo02 {
    public static void main(String[] args) {
        //练习,计算0-100之间奇数与偶数的和
        int oddSum=0;
        int evenSum=0;
        for (int i=0;i<=100;i++){
            if (i%2!=0){
                oddSum=oddSum+i;
            }else{
                evenSum=evenSum+i;
            }
        }
        System.out.println("奇数的和"+oddSum);//2500
        System.out.println("偶数的和"+evenSum);//2550
    }
}

加一个小知识:

  • println输出完会换行
  • print输出完不会换行
  • 还有个换行符\n不要忘了...

四.实例:打印九九乘法表

今天累了...明天继续