while循环基础

循环结构

一直不停的执行相同的操作

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

while 循环

  • while是最基本的循环,它的结构是:
while(布尔表达式){
    //循环内容
}
  • 只要表达式为true,循环就会一直执行下去。
  • 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环。
package com.sgz.structure;

public class WhileDemo01 {
    public static void main(String[] args) {
        //输出1-100
        int i =0;
        while(i<100==true){
            i++;
            System.out.println(i);
        }
    }
}
依次输出1-100
  • 循环条件一直为true就会造成无限循环的死循环,我们正常业务编程中应该尽量避免死循环的出现,会影响程序的性能或造成程序的卡死崩溃!
    • 除了等待客户端连接,定时检查等情形
package com.sgz.structure;

public class WhlieDemo02 {
    public static void main(String[] args) {
        while (true){//永远会等于true,会一直执行
            //等待客户端连接
            //定时检查
            /*这是一个死循环
            正常情况下要避免死循环,否则会使程序崩溃。
             */
        }
    }
}

  • 计算1+2+3+...+100
package com.sgz.structure;

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);//在while循环外面,输出结果5050
    }
}

do...while循环

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

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

    do{
        //代码语句
    }while(布尔值表达式);
    
  • while和do...while的区别:

    • while先判断后执行,do while先执行后判断
    • do... while 总是保证循环体会被至少执行一次!
package com.sgz.structure;

public class DoWhileDemo01 {
    public static void main(String[] args) {
        int i =0;
        int sum =0;
        while(i<=100){
            sum=sum+i;
            i++;
        }
        //此时sum=5050,i=101
        System.out.println(sum);
        do {
            sum = sum + i;
            i++;
        }while (i<=100);//布尔条件在后面,先执行,后判断
        System.out.println(sum);
    }
}
//分别输出结果5050  5151
  • 区别
    • 不进循环
public class DoWhileDemo02 {
    public static void main(String[] args) {
        int a = 0;
        while(a<0){//判断为false,不进循环
            System.out.println(a);
            a++;
        }
        System.out.println("====================");
        do {
            System.out.println(a);
            a++;
        }while(a<0);//至少进一次循环
    }
}//只输出下面的0

posted @ 2022-07-18 17:04  来自土木的一员  阅读(79)  评论(0)    收藏  举报