问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java无限循环问题

发布网友 发布时间:2022-05-06 15:22

我来回答

4个回答

热心网友 时间:2022-07-01 04:45

程序二中: System.out.println(greetings[i]);
当你的i=3时, 就会报 ArrayIndexOutOfBoundsException 这样的一个错误,try捕获了这个错误,那么程序就会执行 catch,从而不执行 i++,所以 i 的值 一直都是3,永远小于4,所以无限循环!

热心网友 时间:2022-07-01 04:46

第一个不出现,是因为,先执行的是i++,当下标越界后(i=3,i++变为4),所以i>4不成立,跳出循环。
第二个出现,是因为,当下标越界后(i=3),此时i<4成立,但i++操作没有执行,因为 System.out.println(greetings[i])已经抛出异常。所以为死循环。

注意表达式的执行顺序问题,这样的问题就很好解释了

热心网友 时间:2022-07-01 04:46

这个问题的关键在于第二个程序当i=2时,i++ 然后变成3 进入下个循环。
greetings[3] 取值时,抛出异常 所以 i++就没有机会执行了。所以i将一直停留在3,不会递增了。

程序一
在greetings[i++] // i=2时,正常运行
greetings[3++] // 先取值,之后i变成4 ,然后抛出异常,进入catch 和finally块
退出循环
个人猜测,程序一能运行的关键在于(++)运算的优先级要高于一般的程序语句。其实程序是否运行一致,可以用javap去看下字节码,相当有用。追问说的很有道理
我猜测:异常抛出机制可能要等到该语句System.out.println(greetings[i++]);里面的多个操作都(尝试)执行了再抛出,高手觉得呢?

热心网友 时间:2022-07-01 04:47

程序2:当i为3时System.out.println(greetings[i]);会报异常,这时候i还是为3,直接走System.out.println("数组下标越界异常"); i++不执行;然后执行finally 打印i为3,再执行while 再抛异常,然后重复上面的操作,所以死循环。程序1:当i为3时System.out.println(greetings[i++]);也抛异常 不过 i++ 已经执行了 所以i为4 不符合while条件 程序停止。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
提升学历选自考好还是成考好 成考和自考的文凭哪个好 2024年成人自考和成人高考哪个更好 家用净水器滤芯类型有哪些 家用净水器什么滤芯好 请问在VB中如何调用多线程? 交强险理赔后第二年上涨吗? 交强险出一次险第二年保费多出多少? 全家人都爱吃的家常菜目录 丽台Quadro P5000专业图形显卡-购买最佳价格 为什么我的java程序会无限循环 “享有盛名”中的“盛”是什么意思啊? Java 无限循环问题 java 为什么运行之后会无限循环。。 颇负盛名的盛的字义是什么 JAVA 如何编写1无限循环 Java无限循环 java写了个for无线循环代码,改成循环3次,结果还是无限循环,怎么解决? 我是湖南长沙的,是银行黑名单,想贷款买个车,请问有什么渠道可以? 亚麻油的作用和吃法是什么? 征信黑户科目二过了可以分期买车吗 亚麻油怎么吃 担保人黑户可以买车吗? 哈弗h6前头补漆要多少钱 哈弗h6轻微撞击,前脸有轻微磨损,我这是补漆还是整个前脸都换,都大概要多少钱! 哈弗h6 前脸刮了下补漆多少钱 哈弗h6车轮拱板补漆要多少钱? 哈弗h6冠军版,被货车刮了一下后面,在4s店修复多少钱? 哈弗h6有15cm划痕补漆多钱 哈弗H6侧裙被蹭漆,补漆多少钱?侧裙还有一处的卡扣与车体分离了,怎么修? 怎么做雪糕的保温箱 我听说java中的死循环和无限循环是两回事 是吗 求救!JAVA出现无限循环~~ java多线程无限循环的问题 如何把自制冰淇淋带到外面去卖 如何用两个塑料袋制作冰淇淋? 如何定义JAVA的无限循环数组? java运行到无限循环的程序怎么办? 请教一下 这个java程序 为什么会无限循环?(注:怎么改我知道,请告诉我为什么这样写会无限循环,谢谢) JAVA无限循环,多线程的问题。 JAVA 如何在无限循环用键盘中断 自制冰淇淋怎么做? JAVA中有关无限级for循环问题 放冰激凌,保温桶和保温箱哪个效果好 java这段代码通过编译,但无限循环 自制冰激凌用什么容器盛放在冷冻里? 吃荔枝为什么被判为酒驾 荔枝怎样保花保果? 检查前列腺液能检查出什么来 请问大神吗 前列腺液可以检查出来什么病