`
dandy
  • 浏览: 67250 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

循环者的新娘

    博客分类:
  • java
阅读更多
请提供一个对i的声明,将下面的循环转变为一个无限循环:

while (i != i) {
}

这个循环可能比前一个还要使人感到困惑。不管在它前面作何种声明,它看起来确实应该立即终止。一个数字总是等于它自己,对吗?
对,但是IEEE 754浮点算术保留了一个特殊的值用来表示一个不是数字的数量[IEEE 754]。这个值就是NaN(“不是一个数字(Not a Number)”的缩写),对于所有没有良好的数字定义的浮点计算,例如0.0/0.0,其值都是它。规范中描述道,NaN不等于任何浮点数值,包括它自身在内[JLS 15.21.1]。因此,如果i在循环开始之前被初始化为NaN,那么终止条件测试(i != i)的计算结果就是true,循环就永远不会终止。很奇怪但却是事实。
你可以用任何计算结果为NaN的浮点算术表达式来初始化i,例如:
double i = 0.0 / 0.0;
同样,为了表达清晰,你可以使用标准类库提供的常量:
double i = Double.NaN;
NaN还有其他的惊人之处。任何浮点操作,只要它的一个或多个操作数为NaN,那么其结果为NaN。这条规则是非常合理的,但是它却具有奇怪的结果。例如,下面的程序将打印false:
class Test {
  public static void main(String[] args) {
  double i = 0.0 / 0.0;
  System.out.println(i - i == 0);
  }
}


这条计算NaN的规则所基于的原理是:一旦一个计算产生了NaN,它就被损坏了,没有任何更进一步的计算可以修复这样的损坏。NaN值意图使受损的计算继续执行下去,直到方便处理这种情况的地方为止。
总之,float和double类型都有一个特殊的NaN值,用来表示不是数字的数量。对于涉及NaN值的计算,其规则很简单也很明智,但是这些规则的结果可能是违背直觉的。
3
1
分享到:
评论
1 楼 kimmking 2009-02-13  
本质是三值或四值逻辑(TRUE、FALSE、NULL,unkown),

相关推荐

    089 配对新郎和新娘 C语言源代码文件

    4. **条件语句和循环**:在处理配对逻辑时,会用到if...else语句进行条件判断,以及for或while循环来遍历新郎和新娘的数据。 5. **函数**:可能需要编写多个辅助函数来实现不同的功能,比如读取输入、计算匹配度、...

    C++实验报告代码学习C++初学者很好的学习资料。

    代码使用三个嵌套的for循环遍历所有可能的新郎新娘组合,并通过条件判断排除不符合题意的组合。由于已知所有的陈述都是假的,因此新郎和新娘的名字不能与他们所说的对应。最终,输出所有可能的正确组合。 这些实验...

    c++习题自测,很适合初学者哦

    C++的基础包括变量声明、数据类型(如int、char、float、double等)、运算符(如算术运算符、比较运算符、逻辑运算符等)、流程控制(如if条件语句、switch选择语句、for、while循环语句)以及函数的使用。...

    C语言经典10个小程序

    4. **婚姻配对问题**:这是一个逻辑谜题,通过三重循环遍历所有可能的新郎新娘配对,排除不符合条件的组合。程序中使用了条件判断来排除已知的错误信息,体现了逻辑推理在编程中的应用。 5. **素数分解**:这个程序...

    c基础语言精粹

    《C基础语言精粹》是深入理解C编程语言的关键资源,尤其对于初学者而言,它提供了丰富的实例和经典编程技巧。C++虽然在语法和功能上扩展了C语言,但其核心仍然基于C语言,因此熟悉C语言是掌握C++的基础。 C语言是...

    Java解惑(谜题)CHM中英文双版本

    谜题29:循环者的新娘 谜题30:循环者的爱子 谜题31:循环者的鬼魂 谜题32:循环者的诅咒 谜题33:循环者遇到了狼人 谜题34:被计数击倒了 谜题35:一分钟又一分钟 Java谜题4——异常谜题 谜题36:优柔寡断 ...

    c语言趣味程序100例

    这些程序实例不仅能够帮助初学者巩固C语言的基础知识,还能够让他们接触到更多的编程思想和技术点,比如数组、循环、递归、数据结构的使用,以及数学中的阶乘、排列组合、素数的判断等。更重要的是,通过解决这些...

    创意婚礼策划方案汇编4篇.docx

    4. **多媒体应用**: 制作婚礼筹备过程的视频,循环播放,增加互动体验。 通过上述内容,可以看出创意婚礼策划不仅体现在形式上,更重要的是通过各种细节展现新人的个性和情感,创造难忘且具有个人特色的婚礼体验。

    大气婚纱摄影类企业网站整站模板_棕色 婚纱 摄影 企业 整站 幻灯 菜单 女性 服装 个性 花纹.rar

    “幻灯”指的是模板可能包含一个动态的幻灯片功能,这种功能通常用在首页,能够循环播放精选的婚纱摄影作品,吸引访问者的注意力,增强视觉冲击力。 菜单是网站导航的重要组成部分,一个好的菜单设计能让用户快速...

    趣味程序汇编

    - 新娘和新郎的问题需要逻辑推理,可以尝试假设每个组合并验证其是否满足条件。 13. **约束条件与回溯法**: - 委派任务的问题是一个典型的约束满足问题,可以使用回溯法来尝试所有可能的组合。 14. **逻辑悖论...

    《25000年的爱情》主题婚礼策划案.doc

    2. 新娘在花精灵的引领下出现,新郎向星空许下爱情宣言,并将手镯戴在新娘手腕,寓意永不分离。 3. 新人携手走在红地毯上,伴随着钢琴版的结婚进行曲,象征着他们共同的人生旅程正式开始。 4. 村里的长老献上红线,...

    初中语文文摘历史马寅初的妙语

    他以新郎的名字“良夫”为切入点,向新娘保证新郎会是一位好丈夫,这种机智的祝福既切合场合,又不失幽默,给婚礼带来了欢声笑语。 马寅初的自我介绍中,他自称“五马”,因出生日期与“马”巧合,体现了他的风趣...

    2021年美容师(中级)考试题库及美容师(中级)考试技巧.docx

    17. 肩颈护理:通过护理可以增进血液循环,增加氧的输送和营养物质的供给。 18. 色彩明度:低明度色彩感觉较重。 19. 皮肤复合感觉:软硬、干湿、粗糙属于复合感觉,而痛觉是单一感觉。 20. 电动打磨机:机芯转速...

    A natural language event parser for java and android..zip

    事件通常包括触发词(如“购买”、“结婚”)、参与者(如“买家”、“新娘”)以及相关的时间、地点等信息。解析器需要识别这些元素,并构建出事件的结构化表示。 3. Java与Android平台的NLP库 Java中常见的NLP库...

    高速IP路由器中输入排队调度算法综述.pdf

    稳定婚姻匹配算法(Stable Marriage Matching)借鉴了社会学中的稳定婚姻问题,将输入端口和输出端口视为“求婚者”和“新娘”,通过一定的规则寻找最佳匹配,以确保路由器资源的均衡利用。这种方法可以提供较好的...

    2021年1月美容师中级模拟试题及答案卷5.docx

    7. 肩颈部皮肤护理有助于改善局部血液循环,延缓皮肤衰老。 8. 皮脂腺分泌的皮脂是一种无菌较粘稠的液体,对皮肤有保护作用。 9. 某些皮肤病治愈后可能会留下色素沉着,例如痤疮、湿疹等。 10. 使用光纤显微皮肤、...

    2021年美容师(中级)解析及美容师(中级)作业考试题库.docx

    35. **新娘妆**:新娘妆用于婚纱摄影和婚宴,需要呈现优雅、自然且持久的妆容效果。 36. **护理方案**:通过面部皮肤护理方案中的顾客个人信息,美容师可以定制个性化的护理计划,满足不同顾客的需求。

    2021年8月美容师(中级)模拟考试题及答案(二).pdf

    22. 在劳动者无法胜任原工作或不愿接受调岗时,用人单位在合法范围内可以解除劳动合同。 23. 中华人民共和国首批美容高级技师诞生于2000年12月,标志着美容行业的专业化发展。 24. 明度低的色彩通常感觉较重,如...

    2021年1月美容师中级模拟试题及答案卷2.docx

    20. **新娘妆要求**:新娘妆要求精致洁净,整体感强。 21. **色彩基础**:色彩的属性是理解和感受其他色彩心理效应的基础。 22. **经脉知识**:下肢内侧循行的经脉包括足太阴脾经。 23. **痤疮特性**:痤疮是毛囊...

Global site tag (gtag.js) - Google Analytics