我写了这么一段程序。比较郁闷的是,但i循环到i=3的时候,虽然内层循环的条件满足,但是外层循环的条件已经不满足了。为什么不把两层循环都跳出来呢。不然就不会造成我内层循环indexoutofbounday错误了。另外有没有什么方式让他知道外层循环的条件已经不满足了,应该两层循环都跳出来。publicclassDebug{publicstaticvoidmain(String[]args){Stringa="MMM";inti=0;intval=0;while(i
2 回答
繁花不似锦
TA贡献1851条经验 获得超4个赞
可以为一个循环命名。这大概是你想问的。outerLoop:while(iwhile(a.charAt(i)=='M'){ val+=10;i++;if(i>=a.length())breakouterLoop;}}但你完全没必要包一个外层循环,for(;ival+=10; 另外,对于外部循环来说,内部循环整个做完一套才算外部循环的一次。外部循环那一层的判断只是在每一次外部loop开始时检查的,一次loop只检查一次之后就不管的,并不是时时监控该条件是否满足的。你要时时监控,就必须在你每次改变i的值之后都作一次检查。
达令说
TA贡献1821条经验 获得超6个赞
当i=3的时候,依旧在内层循环里(并未在外层循环条件中判断),调用a.charAt(i)时报indexoutofbounday错误。javapublicclassDebug{publicstaticvoidmain(String[]args){Stringa="MMM";inti=0;intval=0;while(ival+=10; i++;}System.out.println(val);}}
添加回答
举报
0/150
提交
取消