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

在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语句
for循环语句例子、vba循环语句例子、java for循环语句例子、vb循环语句例子、jq for循环语句例子,以便于您获取更多的相关知识。

时间: 2024-10-14 08:19:16

Java中一个for语句导致无穷大死循环的例子_java的相关文章

浅谈java中异步多线程超时导致的服务异常_java

在项目中为了提高大并发量时的性能稳定性,经常会使用到线程池来做多线程异步操作,多线程有2种,一种是实现runnable接口,这种没有返回值,一种是实现Callable接口,这种有返回值. 当其中一个线程超时的时候,理论上应该不 影响其他线程的执行结果,但是在项目中出现的问题表明一个线程阻塞,其他线程返回的接口都为空.其实是个很简单的问题,但是由于第一次碰到,还是想了一些时间的.很简单,就是因为阻塞的那个线 程没有释放,并发量一大,线程池数量就满了,所以其他线程都处于等待状态. 附上一段自己写的调

if语句-java中if...else语句问题

问题描述 java中if...else语句问题 if为真就执行if后面的语句几,那else后面的语句咋办 if为假才执行else后面的语句 解决方案 if为真就执行if后面的语句,那else后面的语句跳过.每次执行时两选一! 解决方案二: if为真,则执行if后面的语句,跳过else后面的语句: if为假,则跳过if后面的语句,执行else后面的语句. 解决方案三: 只执行一个,if真执行其后语句,假则执行else后面语句,else后面没有则不执行. 解决方案四: 这是分支语句啊 解决方案五:

JAVA 中一个字符串s ,有36位取前24位,代码怎么写?

问题描述 JAVA 中一个字符串s ,有36位取前24位,代码怎么写? 求解..JAVA 中 一个字符串s ,有36位取前24位,代码怎么写? 解决方案 s.substring(0 24) 解决方案二: s = s.subString(s 24); 解决方案三: s.substring(024); substring()方法包头不包尾索引从0开始 解决方案四: s = s.subString(024); substring()方法包头不包尾索引从0开始 解决方案五: s = s.subStrin

java中一个商品列表集合简单问题

问题描述 java中一个商品列表集合简单问题 java中一个商品列表集合简单问题 java中一个商品列表集合简单问题 肯德可以理解为对象,java一切都是对象 那么可以理解为一个类吗可以理解为一个数组吗,可以理解为一种数据泪腺吗 解决方案 对象集合类是类,但不能说对象集合的对象是一个类,对象就是类的实例,和类是不等的.数组是指基本数据类型集合.比如int [] arrs = new int[]{},而List 等类创建的对象集只能称为集合.不能理解为数据类型.数据类型只有基本类型和引用类型.

java中一个汉字和一个字母所占内存字节比较以及后台验证的减半处理

  基本概念 我们一般理解java中 一个字符char占2个字节byte 一个汉字占2个字节byte 一个字母占1个字节byte   其他情况 对于汉字来说,采用gbk编码占两字节,采用utf8编码占三个字节.   String的length()方法 String s1 = "aa"; String s2 = "a好"; s1.length() s2.length() 答案都是2,因为该方法是返回字符的个数,并不是内存中的字节数.   数据库应用 java的编码不会

窗口-如何判断一个java中一个程序关闭

问题描述 如何判断一个java中一个程序关闭 if(e.getActionCommand().equals("按学号查询" ) || e.getActionCommand().equals("按姓名查询" ) )//按学号查询" { new 姓名查询(); this.setEnabled(false); //我想在这里判断 姓名查询()关闭的话这把 this.setEnabled(false);改为 this.setEnabled(true); } 希望有

java 接口 接口实现-Java中一个类如何实现多个接口中同名同参返回值不同的方法?

问题描述 Java中一个类如何实现多个接口中同名同参返回值不同的方法? 如:` class A implements Interface1,Interface2{ //这里该怎么写呢? } interface Interface1{ public void method(); } interface Interface2{ public int method(); } 解决方案 class A implements Interface1,Interface2{ //直接写啊 public voi

java中一个类的方法与方法之间可以有联系,也可以相互孤立吗

问题描述 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗 java中一个类的方法与方法之间可以有联系,也可以相互孤立吗什么情况要孤立,什么情况要有联系呢 解决方案 看需求.比如说class A{ float get长度() { ... } float get宽度() { ... } float get面积() { return get长度()*get宽度(); }}这里就需要调用另外两个方法 解决方案二: 现在还有人有这玩意嘛 解决方案三: 类的方法主要是对属性的一些操作,方法作用

在java中一个方法抛两个异常会怎样

问题描述 在java中一个方法抛两个异常会怎样 在一个java方法中同时用throw和throws抛出异常.会有不良的影响么.会不会有一个一个异常抛不出去的情况发生啊?求大神帮帮忙 解决方案 他俩用的地方不一样,throws是写在方法后面,其他地方调用时,要捕获,throw是在方法内直接抛出,可以一起用throw触发了,估计就到不了throws的捕获了,看你具体怎样用的 解决方案二: 方法声明时可以抛出异常,但是并不代表调用这个方法时会发生异常. 测试要构造异常条件才能走入异常分支的啊.例如: