`

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

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

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


大家认真读完能给出正确结果吗?
分享到:
评论
47 楼 sambean 2011-06-21  
do while表示看不懂啊
46 楼 葬雪晴 2011-06-18  
  {
 i++;
}


是一段普通代碼塊

int i=10;
while(i<0);


是一個死循環.
45 楼 dolwenjian 2011-06-18  
starcheney 写道
是死循环。。。
一直执行:
while (i > 0) ;


问题的关键不是 少写了do。。而是"while (i > 0) ;" 这里这个分号。。。不然就直接返回true了。
44 楼 tom&jerry 2011-06-18  
确实是死循环,已运行测试过,差点就当成do while了
43 楼 lihaibingqq789 2011-06-17  
答案是9啊。。。
42 楼 lixingwang718 2011-06-17  
{
i--;
} 

只执行了一次

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


+1
41 楼 noasoso 2011-06-17  
private static boolean test() {
		int i = 10;
		{
			i--;
		}
		while (i > 0)
			;
		return true;
	}


关键在于while后面的分号  如果没有这个分号 当然返回true
但是现在有这个分号 肯定就是死循环了
40 楼 Technoboy 2011-06-17  
39 楼 tang_kun_cool 2011-06-17  
JAVA有{}wile()的语法?让你费解。根本就不对吗
38 楼 redhat 2011-06-17  
badboy4471 写道
根本就是跟循环一点关系都没有。不管你怎么循环返回都是true。。

对了一半,测试看看。
37 楼 badboy4471 2011-06-17  
根本就是跟循环一点关系都没有。不管你怎么循环返回都是true。。
36 楼 Ithaca 2011-06-17  
while(boolean); //多了分号
35 楼 wuyufeixue 2011-06-17  
很明显的死循环
34 楼 徐风子 2011-06-17  
靠! 我第一眼看见的时候还以为是java的语法糖, do while 循环可以不用写 do 呢。
33 楼 doubleyoung 2011-06-17  
都看出来了。。
32 楼 cenxiaobai 2011-06-17  
不是do..while..循环,让人误解。而且循环跟返回值也没什么关系。
31 楼 kjj 2011-06-17  
确切的说,这不是与wiile,是作者眼花的感觉!!!!!!!!!!!!
30 楼 redhat 2011-06-17  
thihy 写道
所以while后面要加上{},在Eclipse中Format一下就ok了(自动添加{})

这与你设置format的格式有关,并且,如果是不小心删除了do的话,你就很难发现,而且对于代码格式化,我们希望对之前的修改不要做全部格式化,只是局部格式化,这样导致有时候很难发现问题。
29 楼 redhat 2011-06-17  
sgq0085 写道
怎么可能是死循环。。。 明明是执行一次就退出了

执行一把,起码。
28 楼 redhat 2011-06-17  
yeah_nihao 写道
不执行i,直接返回true,因为这只是对局部变量计算,而且没有任何外部引用,返回也没有对任何变量引用,"聪明的"虚拟机可以自动优化这个地方.

执行一把,起码。

相关推荐

    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