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