精华内容
下载资源
问答
  • Java中while(true)

    2018-07-20 11:39:00
    while(true)是一个无限循环 在内部用break或return退出循环,否则一直循环 转载于:https://www.cnblogs.com/zizi-tothemoon/p/9340619.html

    while(true)是一个无限循环

    在内部用break或return退出循环,否则一直循环

    转载于:https://www.cnblogs.com/zizi-tothemoon/p/9340619.html

    展开全文
  • java中while循环

    千次阅读 2020-07-31 21:32:13
    while循环完整格式: 初始化语句; while (条件判断语句) { 循环体语句; 条件控制语句; } while循环执行流程: ①执行初始化语句 ②执行条件判断语句,看其结果是true还是false ​ 如果是false,循环结束 ​ ...
    • while循环完整格式:

      初始化语句;
      while (条件判断语句) {
      	循环体语句;
          条件控制语句;
      }
      
    • while循环执行流程:

      ①执行初始化语句

      ②执行条件判断语句,看其结果是true还是false

      ​ 如果是false,循环结束

      ​ 如果是true,继续执行

      ③执行循环体语句

      ④执行条件控制语句

      ⑤回到②继续

    while循环案例-珠穆朗玛峰

    public class WhileTest {
        public static void main(String[] args) {
    		//定义一个计数器,初始值为0
    		int count = 0;
    		//定义纸张厚度
    		double paper = 0.1;
    		//定义珠穆朗玛峰的高度
    		int zf = 8844430;
    		//因为要反复折叠,所以要使用循环,但是不知道折叠多少次,这种情况下更适合使用while循环
    		//折叠的过程中当纸张厚度大于珠峰就停止了,因此继续执行的要求是纸张厚度小于珠峰高度
    		while(paper <= zf) {
    			//循环的执行过程中每次纸张折叠,纸张的厚度要加倍
    			paper *= 2;
    			//在循环中执行累加,对应折叠了多少次
    			count++;
    		}
    		//打印计数器的值
    		System.out.println("需要折叠:" + count + "次");
        }
    }
    
    

    循环语句-dowhile循环

    • 完整格式:

      初始化语句;
      do {
      	循环体语句;
      	条件控制语句;
      }while(条件判断语句);
      
    • 执行流程:

      ① 执行初始化语句

      ② 执行循环体语句

      ③ 执行条件控制语句

      ④ 执行条件判断语句,看其结果是true还是false

      如果是false,循环结束

      如果是true,继续执行

      ⑤ 回到②继续

    public class DoWhileDemo {
        public static void main(String[] args) {
            //需求:在控制台输出5次"HelloWorld"
    		//for循环实现
    		for(int i=1; i<=5; i++) {
    			System.out.println("HelloWorld");
    		}
    		System.out.println("--------");
    		//do...while循环实现
    		int j = 1;
    		do {
    			System.out.println("HelloWorld");
    			j++;
    		}while(j<=5);
        }
    }
    
    展开全文
  • Java中while(true)与for(;;)是没有区别的

    千次阅读 2018-07-24 13:33:37
    这种情况仅限在Java语言,在其他语言编译后是汇编语言,我也没有去逐一验证,在知乎上看见一个人的回答 当然,我还没有去验证,希望有同学验证过后在评论处讲解一下 我也是在无意间才发现原来还有for(;;)...

    测试代码:

    public class Test {
        public static void main(String [] aargs){
            test0();
            test1();
        }
        public static void test0(){
            int  i =0;
            for(;;){
                System.out.println(i);
            }
        }
    
        public static void test1 (){
            int i =0;
            while(true){
                System.out.println(i);
            }
        }
    }

    生成的字节码:
    test0

    0 iconst_0
    1 istore_0
    2 getstatic #4 <java/lang/System.out>
    5 iload_0
    6 invokevirtual #5 <java/io/PrintStream.println>
    9 goto 2 (-7)

    test1

    0 iconst_0
    1 istore_0
    2 getstatic #4 <java/lang/System.out>
    5 iload_0
    6 invokevirtual #5 <java/io/PrintStream.println>
    9 goto 2 (-7)

    可以看到,二者在编译成字节码之后是完全相同的

    这种情况仅限在Java语言中,在其他语言中编译后是汇编语言,我也没有去逐一验证,在知乎上看见一个人的回答while (true) 和 for ( ; ; )
    当然,我还没有去验证,希望有同学验证过后在评论处讲解一下

    我也是在无意间才发现原来还有for(;;)这种写无限循环的方式,然后就在网上找了一些blog比较二者之间的不同,感觉在直呼里面给出的几个答案互相之间都不太服气的样子<这里是原题目链接>。还是在看了其他人博客里面写的查看编译后的字节码的方法,才模仿着试着做了一下,顺便学习了一下怎么在IDEA里面通过添加jclasslib Bytecode viewer工具查看Java文件编译后的字节码文件。在这里记录一下。。。

    展开全文
  • Java中的for(;;)和while(true)

    千次阅读 2018-09-12 11:43:58
    一、 摘要 ...- while(true) 那么二者到底有什么区别呢? 二、 实践 1. 首先编写一个java文件,内容如下: public class Demo { public void demo1() { for (;;) {} } public void demo...

    一、 摘要

    在Java代码中,对于死循环有两种常见的方式:

    • for(;;)
    • while(true)

    那么二者到底有什么区别呢?


    二、 实践

    1. 首先编写一个java文件,内容如下:

    public class Demo {
        public void demo1() {
            for (;;) {}
        }
    
        public void demo2() {
            while (true) {}
        }
    }

    2. 然后编译为class文件,并显示字节码:

    zengyu@zengyu-Precision-T1700:~$ javac Demo.java
    zengyu@zengyu-Precision-T1700:~$ javap -verbose Demo.class
    Classfile /home/zengyu/Demo.class
      Last modified 2018-9-12; size 314 bytes
      MD5 checksum 5f959c0d031d1c2b2503d75222b0e94e
      Compiled from "Demo.java"
    public class Demo
      minor version: 0
      major version: 52
      flags: ACC_PUBLIC, ACC_SUPER
    Constant pool:
       #1 = Methodref          #3.#13         // java/lang/Object."<init>":()V
       #2 = Class              #14            // Demo
       #3 = Class              #15            // java/lang/Object
       #4 = Utf8               <init>
       #5 = Utf8               ()V
       #6 = Utf8               Code
       #7 = Utf8               LineNumberTable
       #8 = Utf8               demo1
       #9 = Utf8               StackMapTable
      #10 = Utf8               demo2
      #11 = Utf8               SourceFile
      #12 = Utf8               Demo.java
      #13 = NameAndType        #4:#5          // "<init>":()V
      #14 = Utf8               Demo
      #15 = Utf8               java/lang/Object
    {
      public Demo();
        descriptor: ()V
        flags: ACC_PUBLIC
        Code:
          stack=1, locals=1, args_size=1
             0: aload_0
             1: invokespecial #1                  // Method java/lang/Object."<init>":()V
             4: return
          LineNumberTable:
            line 1: 0
    
      public void demo1();
        descriptor: ()V
        flags: ACC_PUBLIC
        Code:
          stack=0, locals=1, args_size=1
             0: goto          0
          LineNumberTable:
            line 3: 0
          StackMapTable: number_of_entries = 1
            frame_type = 0 /* same */
    
      public void demo2();
        descriptor: ()V
        flags: ACC_PUBLIC
        Code:
          stack=0, locals=1, args_size=1
             0: goto          0
          LineNumberTable:
            line 7: 0
          StackMapTable: number_of_entries = 1
            frame_type = 0 /* same */
    }
    SourceFile: "Demo.java"

    3. 分析指令:

      public void demo1();
        descriptor: ()V
        flags: ACC_PUBLIC
        Code:
          stack=0, locals=1, args_size=1
             0: goto          0
          LineNumberTable:
            line 3: 0
          StackMapTable: number_of_entries = 1
            frame_type = 0 /* same */
    
      public void demo2();
        descriptor: ()V
        flags: ACC_PUBLIC
        Code:
          stack=0, locals=1, args_size=1
             0: goto          0
          LineNumberTable:
            line 7: 0
          StackMapTable: number_of_entries = 1
            frame_type = 0 /* same */

    可以看出二者在编译为字节码后是完全一致的。


    三、 结论

    对于java而言,使用for(;;)和while(true)进行死循环是相同效果的,看个人喜好选择。
    另外补充一点,在C中,使用release编译出来的二者也是完全一致的,但是用debug编译出来的,while(true)会比for(;;)多一些操作指令,读者可以自己去研究,此处不展开讨论。

    展开全文
  • java退出死循环while(true)

    万次阅读 2018-09-10 18:26:17
    =null就退出while(true),超过8秒也退出 long t1 = System.currentTimeMillis(); while (true){ long t2 = System.currentTimeMillis(); if(t2-t1 > 8000){ break; }else if(temp_msg!=n...
  • tips:Java中while的判断条件

    千次阅读 2017-01-14 18:06:24
    Java中while的判断条件
  • java while循环_Java while循环

    千次阅读 2020-07-14 03:04:52
    java while循环Java while loop is used to execute a block of statements continuously till the given condition is true. Earlier we looked into java for loop. Java while循环用于连续执行语句块,直到给定...
  • java中while的用法

    万次阅读 2015-12-07 11:58:40
    后来发现while循环有个return,以为发现问题的根源。 注释掉后依然报错,挠头呀。 按照编译器提示remove代码,可以成功,但while循环下面的代码全部被删除掉啦,涉及到执行的功能模块呢。 最后发现要跳出while...
  • JAVA中while循环和do while循环

    千次阅读 2017-09-06 09:40:47
    那么在讲解循环之前呢我们先来了解一下什么是循环 生活的例子 车子的轮胎他就是一直在循环 马拉松跑到也是在循环 因为运动员不停的一圈一圈在跑这也是一个循环 那么我们为什么要学习循环呢? 下面看一个小...
  • Java无限循环之while(true){}

    千次阅读 2018-10-23 11:15:54
    import java.util.Scanner; /** * @author wtl * 从键盘上读入个数不确定... * while(true){ * * } * * 说明:一般情况下,在无限循环内部要有程序终止的语句,使用break实现。若没有,那就是死循环 */ p...
  • Java教程10—Java中while循环

    万次阅读 2018-09-02 20:24:37
    Java中while循环 在上一个教程,我们讨论了for循环。 在本教程,我们将讨论while循环。如前一个教程所讨论的,循环用于重复执行一组语句,直到满足特定条件。 while循环的语法 while(condition) { ...
  • 在使用scanner的next方法时 在while中循环读取scanner的内容 while的判断条件为hasNext 但是控制台一直在等待while为死循环 查过类似问题 据说是因为没有使用next方法 但 是在while中使用了next方法还是出现了死...
  • Java中 终止线程通常意味着在线程处理任务完成之前停掉正在做的操作,也就是放弃当前的操作。 在 Java 有以下 3 种方法可以终止正在运行的线程: 使用退出标志,使线程正常退出,也就是当 run() 方法完成后线程...
  • JAVA-while循环语句

    万次阅读 2017-01-17 10:14:14
    while循环语句用法比for语句用起来简单,格式也对的简单;while(判断条件){ 循环体 }public class WhileTest { public static void main(String[] args) { int i=1; while (i) { System.out.println...
  • 这里面有两个while(true)都不太明白什么意思。按照我的理解在第二个语句 ``` while(true){ System.out.println("来自客户机的信息:"+reader.readLine()); } ``` 里面,system应该不断输出这个消息啊,但是...
  • Java语言while循环示例

    千次阅读 2017-08-24 15:56:38
    package com.enfo.wd;public class LabeledWhile { public static void main(String[] args) { int i=0; outer: while(true){ i++; System.out.prin

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 821,159
精华内容 328,463
关键字:

java中while(true)什么意思

java 订阅