- 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来指定返回值,逻辑上就是错的。