`

一段趣味的代码关于 while循环的

阅读更多
排查问题时发现了一段粗心的代码:

private static boolean test(){
    int i=10;
    {
        i--;
    }while(i>0);
    return true;
}


大家认真读完能给出正确结果吗?
分享到:
评论
27 楼 yeah_nihao 2011-06-17  
不执行i,直接返回true,因为这只是对局部变量计算,而且没有任何外部引用,返回也没有对任何变量引用,"聪明的"虚拟机可以自动优化这个地方.
26 楼 ahopedog2 2011-06-16  
<p>惭愧。。 <br>看了半天也没看出问题,于是实际运行了一下代码这才发现了问题所在。 <br></p>
<p>  如果把代码改成下面这样就能看到什么地方有问题了。</p>
<pre name="code" class="java">private static boolean test(){  
    int i=10;  
//     {  
//         i--;  
//     }
   
    while(i&gt;0);  
    return true;  
} </pre>
<p> </p>
<p> </p>
<p>原来在while前没有do关键字时,while前面的{}是作为一个代码块单独执行的,而后面的while(i&gt;0);形成了一个单独的语句,这也就是前面各位说的是循环的代码了。</p>
<p> </p>
<p> </p>
25 楼 starcheney 2011-06-16  
是死循环。。。
一直执行:
while (i > 0) ;
24 楼 thihy 2011-06-16  
所以while后面要加上{},在Eclipse中Format一下就ok了(自动添加{})
23 楼 hobitton 2011-06-16  
redhat 写道
排查问题时发现了一段粗心的代码:

private static boolean test(){
    int i=10;
    {
        i--;
    }while(i>0);
    return true;
}


大家认真读完能给出正确结果吗?

eclipse里面format一下就出来老:)
private static boolean test() {
        int i = 10;
        {
            i--;
        }
        while (i > 0)
            ;
        return true;
    }
22 楼 sgq0085 2011-06-16  
怎么可能是死循环。。。 明明是执行一次就退出了
21 楼 redhat 2011-06-16  
qljcly 写道
养成好的代码习惯,不写do while,自然不会出现这种情况。

do while本身没有错,do while可以改为任何形式的循环结构,不限于for,while等,但是改出来的代码结构没有do while适用时的好(第一次区别于其他次数的循环时)。
20 楼 wuliaolll 2011-06-16  
do while的地方都可以用while代替
19 楼 nakupanda 2011-06-16  
do while 怎么了啊... 有适用的时候啊.
18 楼 sai0720 2011-06-16  
莫名其妙的错误
17 楼 qljcly 2011-06-16  
养成好的代码习惯,不写do while,自然不会出现这种情况。
16 楼 nakupanda 2011-06-16  
我认为是直接return true, 在while的第一次循环的时候.
15 楼 Angly1018 2011-06-16  
zhangshuling1214 写道
{
i--;
}

只执行了一次

while(i>0) 是当做一条语句在死循环

14 楼 s929498110 2011-06-16  
是啊、 死循环。。。。。。
13 楼 zhangshuling1214 2011-06-16  
{
i--;
}

只执行了一次

while(i>0) 是当做一条语句在死循环
12 楼 CN_DOTA_HOPE 2011-06-16  
只是省略了一对大括号而已while(true){} 上面i--多加了对大括号
11 楼 senton 2011-06-16  
yunzhu 写道
人家写着玩的,本来就是test方法

10 楼 yxbwzx 2011-06-16  
除了i,好像都是独立的
9 楼 CN_DOTA_HOPE 2011-06-16  
死循环 
8 楼 freish 2011-06-16  
从来不写do...while循环,所以不会有这样粗心的错误

相关推荐

    Python趣味入门教程之循环语句while

    While循环  while 条件判断语句:  子代码1  子代码2  子代码3  …  子代码N 主代码1 while语句的格式与if类似,子代码必须进行缩进4个空格,作用却是大不相同。当它执行第一次循环时,判断条件是否成立,...

    趣味C语言编程百例源代码

    "趣味C语言编程百例源代码"是一个集合了多种C语言编程实例的资源,旨在帮助学习者通过实践理解C语言的核心概念和编程技巧。 C语言的基本结构包括变量定义、数据类型、运算符、控制结构(如if-else,switch-case,...

    小学生C++趣味编程 C++源代码(2021.11.22).rar

    1. **第36课 天连碧水碧连天.cpp**:这可能是一个关于字符串处理或者循环的练习,通过创建一个循环结构来实现“天连碧水碧连天”的文字效果。 2. **第20课 孔融让梨-2020.10.29 方法一.cpp**:孔融让梨是中国传统...

    Python基础之循环语句用法示例【for、while循环】

    #### 一、while循环 `while`循环的基本结构如下: ```python while 判断条件: statements ``` 这里有几个关键点需要注意: - **条件表达式**:在每次循环开始前都会被评估,如果条件为真,则执行循环体内的语句...

    Python使用while循环花式打印乘法表

    在Python编程语言中,`while` 循环是一种基本的控制流程结构,它允许程序重复执行一段代码,直到满足特定条件为止。在这个场景中,我们使用`while`循环来实现花式打印9*9乘法表。乘法表是数学学习的基础,而用编程...

    python趣味编程100例(99个)

    控制流是编程中的另一个关键概念,包括条件语句(if-else)、循环(for和while)、异常处理(try-except)等。通过这些,你可以根据特定条件执行代码或重复执行某段代码,处理可能出现的错误。 面向对象编程(OOP)...

    1.5编程基础之循环控制_07奥运奖牌计数-10满足条件的数累加(B).pdf

    for循环用于重复执行一个代码块固定次数,while循环和do-while循环用于在满足特定条件时重复执行代码块,不同之处在于while循环是在每次循环开始前检查条件,而do-while循环至少执行一次代码块后再检查条件。...

    用java基础知识、循环、双重循环、随机数实现幸运抽奖功能。

    为了增加用户体验,可以设置一定的尝试次数限制,超过后账户会被锁定一段时间。 阶段5:实现幸运抽奖功能 幸运抽奖是项目的重点部分,需要用到Java的随机数生成。我们可以创建一个包含所有参与者ID的列表,然后使用...

    java趣味编程.pdf

    本文件是一份关于Java编程的趣味案例集合,通过多个简单的Java类(Subject1至Subject6)演示了基础的编程概念和算法。下面是这些Java类中所涉及的知识点。 **Subject1类:** Subject1类展示了如何使用Java编写一个...

    趣味编程C语言——C语言经典示例代码

    1. **基础语法**:C语言的基础包括变量声明、数据类型(如int, char, float等)、运算符(算术、比较、逻辑、位操作等)、控制结构(if-else, switch-case, for, while循环)和函数定义。 2. **指针**:C语言中的...

    1.5编程基础之循环控制_38计算多项式的导函数(2019.09.11).pdf

    do-while循环与while循环相似,但它是至少执行一次循环体后再判断条件。因此,它适用于至少需要执行一次循环体的场景。do-while循环的结构为: ```cpp do { // 循环体 } while (条件表达式); ``` ### 二、多项式...

    JAVA基础阶段趣味检测-0.doc

    这涉及到使用`Scanner`类从键盘获取输入,`System.out.println()`用于输出提示信息,以及`switch`语句和`while`或`do-while`循环结构来实现菜单功能。根据用户的选择,我们可以使用`/`和`%`运算符来求商和余数。 2....

    任意两个数相加等于100的游戏 do while.rar

    在C#编程中,"do while"循环常常用于重复执行一段代码,直到满足特定条件为止,这很可能是游戏中迭代查找合适数字的方式。 首先,我们要理解游戏的基本概念。游戏可能要求用户输入两个数,或者由程序随机生成两个数...

    Python 爱心表白代码程序员表白代码.zip

    在IT行业中,编程语言不仅是创建软件...总之,"Python 爱心表白代码"不仅是一段富有创意的程序,也是学习Python语言和编程思维的好例子。它展示了如何用技术表达情感,同时提供了一个实践和理解Python编程的趣味场景。

    《小学生C++趣味编程》-C++、Scratch(2023.09.24)C.pdf

    6. **循环结构**:在第16课“开灯关灯”中,可能会涉及循环的概念,如for或while循环,用于重复执行某段代码直到满足特定条件。 7. **函数和模块化编程**:随着课程深入,学生将学习如何定义和使用函数,提高代码的...

    复刻李峋爱心代码.rar

    在这个"复刻李峋爱心代码.rar"压缩包中,我们很显然面对的是一个关于编程代码的分享,可能是某个开发者李峋所创作的一段特别的代码,可能是为了传递爱心或者纪念某个特殊的事件。虽然标签为空,但我们可以通过对...

    python趣味编程100例.7z

    通过它们,你可以根据特定条件执行代码块或重复执行某段代码。 4. **函数**:函数是可重用的代码块,Python中的函数使用def关键字定义。学习如何定义、调用函数以及理解参数和返回值是必备技能。 5. **列表、元组...

    爱心代码c语言.rar

    3. **循环与条件语句**:循环(for或while)用于重复执行一段代码,条件语句(if-else)用于根据特定条件执行不同的代码块。在绘制爱心时,会用到这些控制流结构来决定哪些部分应该打印,哪些部分不应该。 4. **...

    c语言趣味编程.pdf

    例如,声明了浮点型变量i和sum,并通过一个while循环计算了一个特定的数学序列之和。变量i的初始值是2.0,循环条件是i小于或等于100,并在每次迭代中增加2。循环体内,sum的值通过每次迭代加上1/i来更新。最后,通过...

Global site tag (gtag.js) - Google Analytics