Java中一个for语句导致无穷大死循环的例子

作者:junjie 时间:2022-12-17 08:13:33 

在Java开发中常用到For循环,它对简化业务处理,提高效率,非常有帮助。但要防止程序算法中可能导致死循环的情况,而且有的死循环还不好察觉。比如下面这个例子,算法极容易认为是50,实际上是无穷大的一个死循环。


public class CycTest {
 /**
  * @param args the command line arguments
  */
 public static void main(String[] args) {
   int end = Integer.MAX_VALUE; //定义个循环终止数,可以无限大,区别于int型。
   int start = end-50;     //定义起始值
   int count = 0;        //初始值
   for(int i=start;i<=end;i++){ //循环体
     count++;         //循环计数
   System.out.println("本次循环次数为:"+count); //输出
 }
 }  
}

输出结果:


run:
本次循环次数为:1
本次循环次数为:2
本次循环次数为:3
......
本次循环次数为:49
本次循环次数为:50
本次循环次数为:51
......

总结:
可能有人认为输出结果会是50次,实际上这是个死循环。end是无限大的数,i<=end也就是无限大的数。所以说是无极限的。for(int i=start,i<end;i++),结果就是50了。i<end,表示边界值不能是一个无穷大致, 而从start到end也就变成了一段区间了,区间就是50。所以开发中考虑到各种数据类型的取值范围,特别是条件判断及边界取值时。

标签:Java,for,死循环
0
投稿

猜你喜欢

  • Java快速批量移动文件的实现方法

    2021-06-15 16:58:56
  • jdk-logging log4j logback日志系统实现机制原理介绍

    2022-03-22 11:45:28
  • Java8 中的ParallelStream

    2022-09-07 19:00:23
  • Android简单实现文件下载

    2023-08-28 06:33:17
  • java字符串格式化输出实例讲解

    2022-09-12 10:25:24
  • SpringBoot整合WebSocket实现后端向前端发送消息的实例代码

    2021-10-30 19:24:56
  • Java ArrayList与LinkedList及HashMap容器的用法区别

    2022-07-07 00:53:25
  • java web项目里ehcache.xml介绍

    2022-02-25 20:46:25
  • c# 死锁和活锁的发生及避免

    2023-05-28 00:45:49
  • Android之Viewpager+Fragment实现懒加载示例

    2021-06-30 04:36:20
  • Mybatis中 mapper-locations和@MapperScan的作用

    2023-07-13 08:08:34
  • java实现字符串反转案例

    2021-11-20 04:45:55
  • SpringMvc接收参数方法总结(必看篇)

    2022-10-02 12:28:54
  • 一款适用于Android平台的俄罗斯方块

    2023-02-25 02:38:35
  • C#获取web.config配置文件内容的方法

    2023-12-24 12:22:27
  • 剖析Java中线程编程的概念

    2022-02-02 04:12:51
  • Spring Cloud如何使用Feign构造多参数的请求

    2023-11-03 00:18:31
  • 简单实用的Android UI微博动态点赞效果

    2023-01-07 06:32:54
  • C#实现根据银行卡卡号判断银行名

    2021-08-21 07:14:00
  • 解决Spring Cloud Feign 请求时附带请求头的问题

    2022-12-11 04:29:46
  • asp之家 软件编程 m.aspxhome.com