当前位置: 代码迷 >> J2SE >> 遇到了关于这个循环返回值的困惑,高手帮忙看看啊解决思路
  详细解决方案

遇到了关于这个循环返回值的困惑,高手帮忙看看啊解决思路

热度:81   发布时间:2016-04-24 00:52:50.0
遇到了关于这个循环返回值的困惑,高手帮忙看看啊
Java code
            public boolean check(int a){                System.out.println(routeNum+"+"+a+"+"+nextNum);                for(int i=0;i<routeNum.length();i++){                    if(Integer.toString(a).equals(routeNum.charAt(i)))                        return false;                }                return true;            }


这个函数为什么只返回true,如果我改成只执行循环的话就像这样:

Java code
            public boolean check(int a){                System.out.println(routeNum+"+"+a+"+"+nextNum);                for(int i=0;i<routeNum.length();i++)                    if(Integer.toString(a).equals(routeNum.charAt(i)))                        return false;            }


就会提示缺少返回语句。

java里不能这样在循环里返回值吗?如果想实现这个该怎么办呢?求高手指点~

------解决方案--------------------
第一段程序的if条件应该不会成立,因为charAt()返回的类型是char,你用String跟Character比是否equals,必然永远不能成立。

改为:
if(Integer.toString(a).equals(Character.toString(routeNum.charAt(i))))


另外,第二段程序肯定是错的,如果for循环正常结束,那么就没有return来指定返回值,逻辑上就是错的。
  相关解决方案