JAVA循环结构while, do,while永远执行,直到冒烟「第10集」

“嗨我是学长,今天的你过得还好吗?”

“这里是offer学院,帮你轻松拿offer”

- 2022.11.11 -

在第七节,我们了解了循环的概念,这节我们具体学习循环的使用。

在java中,提供给我们的循环有多种,while,do...while,for等,本节主要涉及while的使用,for循环放在下节讲述。我们一起来学习吧。


一、方式1-while循环

1、语法结构:

while(条件){
  //循环体部分
}

分析说明:

在每次循环开始前,首先会判断条件是否成立,如果计算结果为true,就会执行循环体内部语句。如果计算结果为false,会跳出循环,执行后续代码。

示例代码如下:

public class WhileLoop1 {
    public static void main(String args[]) {
        int i = 1;
        while (i <= 5) {
            System.out.println(i); // 打印i
            i ++; // i自增1
        }
    }
}

解析:

o在循环体内部,除了打印变量i的值,还有一个语句:i++,这个语句的作用是让变量i自增1。如果没有这个语句,i的值永远不会改变,所以循环条件永远成立,程序将陷入死循环,直到将资源耗尽才会停止,所以要杜绝编写死循环代码。



2、正常示例代码:

需求:1到100的累加

代码如下:

public class WhileLoop2 {
    public static void main(String[] args) {
        int sum = 0; // 累加和
        int i = 1;
        while (i <= 100) {
            sum = sum + i; // 使sum和i相加,并将值再次赋值给sum
            i ++; // i自增1
        }
        System.out.println("1到100的累加和为:" + sum);
    }
}

解析:



3、无限死循环,永远执行,直到冒烟:

常量的值在编译期就能确定,true字面量(常量),在编译的时候值就确定了在编译代码的时候,就能确定while(true)是个死循环。

public class whileTest {
    public static void main(String[] args) {
        /**
         * 无限死循环 永远执行
         */
        while (true) {
            //当条件为TRUE 会永远执行 不会停止
            System.out.println("我会永远执行跑下去~");  
        }
        
    //后续代码将不可能会被执行 而报错
        System.out.println("我会停下来休息下吗?");   
    }
}

变量的值,在运行期才能确定,x变量,在编译的时候,无法确定x的值只有在运行的时候,才能确定x的值,在编译时while(x<10)无法判断是否是死循环只有运行了之后,才会发现是死循环,但是此时已经晚了。

public class whileTest {
    public static void main(String[] args) {
        /**
         * 无限死循环 永远执行
         */
        int x = 2;
        while (x < 5) {  //由于缺少 迭代部分 致使 x<5 永远为true
            
            //条件 x<5 判定为真 会永远执行 不会停止
            System.out.println("我会永远执行跑下去~"); 
        }

        //后续代码将不可能会被执行 在编译时无法确定X的值 这行代码不会报错
        System.out.println("我会永远执行跑下去~");   
    }
}

在正常代码中,我们应该避免这种错误。



二、do...while...循环

dowhile循环的功能与while循环类似,不同点在于:while循环是先判断条件,再执行循环体;而dowhile循环则是先执行循环体,再判断条件,如果条件成立继续执行循环,条件不成立则终止循环。

dowhile语法格式如下:

do {
    // 循环体
} while (条件);

无论条件成立与否,dowhile循环都至少执行一次。而while循环可能一次都不会执行。

代码示例如下:

import java.util.Scanner;
public class whileTest {
    public static void main(String[] args) {
        /**
         * 判断输入数字是正数还是负数
         */
        //从键盘接受数据
        System.out.println("请输入一个数字:");
        Scanner in = new Scanner(System.in);
        int num = in.nextInt();

        do {
            System.out.println("这次输入的数字为:" + num);
            if (num > 0) {
                System.out.println(num + " 为正数~");
            } else if (num < 0) {
                System.out.println(num + " 为负数~");
            }

            //再次输入下一个数字以做判断
            System.out.println("请输入一个数字:");
            num = in.nextInt();

        } while (num != 0);
    }
}

小结:

本节我们学习了while的两种用法以及对应的不同,下节课我们将要学习java中循环使用频率最高的for循环,下节课见。


我们下期再见!


END


文案编辑|offer学长

文案配图|offer学长

原创内容|田老师出品

展开阅读全文

页面更新:2024-03-25

标签:循环体   正数   负数   下期   文案   示例   学长   条件   结构   代码   数字

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top