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,如果我改成只执行循环的话就像这样:
            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里不能这样在循环里返回值吗?如果想实现这个该怎么办呢?求高手指点~

解决方案 »

  1.   

    第一段程序的if条件应该不会成立,因为charAt()返回的类型是char,你用String跟Character比是否equals,必然永远不能成立。改为:
    if(Integer.toString(a).equals(Character.toString(routeNum.charAt(i))))
    另外,第二段程序肯定是错的,如果for循环正常结束,那么就没有return来指定返回值,逻辑上就是错的。
      

  2.   

    以上回帖只是为了说明原因,其实应该可以简化修改的:  if (((char)('0'+a)) == routeNum.charAt(i)) {不知道你看得懂不