搜索
debug - java这个bug为什么要设计成这样。
怪我咯
怪我咯 2017-04-17 14:20:23
[Java讨论组]
怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(3)
天蓬老师

可以为一个循环命名。这大概是你想问的。

outerLoop:while (i < a.length()) {
    while (a.charAt(i) == 'M') {
        val += 10;
        i++;
        if (i >= a.length())
            break outerLoop;
    }
}

但你完全没必要包一个外层循环,

for(;i < a.length() && a.charAt(i) == 'M';i++)
    val += 10;

另外,对于外部循环来说, 内部循环整个做完一套才算外部循环的一次。外部循环那一层的判断只是在每一次外部loop开始时检查的,一次loop只检查一次之后就不管的,并不是时时监控该条件是否满足的。你要时时监控,就必须在你每次改变i的值之后都作一次检查。

PHP中文网

i=3的时候,依旧在内层循环里(并未在外层循环条件中判断),调用a.charAt(i)时报index out of bounday错误。

javapublic class Debug {
    public static void main(String[] args){
        String a = "MMM";
        int i = 0;
        int val = 0;

        while(i < a.length() && a.charAt(i) == 'M'){
            val += 10;
            i++;
        }

        System.out.println(val);
    }

}
黄舟

类c形式的java,你怎么不自己加上异常处理?还过来黑java

debug:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 3
    at java.lang.String.charAt(String.java:646)
    at com.silianbo.Debug.main(Debug.java:19)
Java Result: 1
BUILD SUCCESSFUL (total time: 1 second)
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号