我的代码不会返回任何内容!输出只是空白

时间:2013-10-13 03:40:21

标签: java boolean stdio

我在java中编写这段代码来扫描数字或字母字符串,看它们是否是连续的。一切似乎工作正常,直到我尝试在那里放置一个布尔值来返回true或false但没有发生任何事情!我错过了什么?谢谢! :)

这是:

public class Question1 {
  public static void main(String[]args){
    String s = "gFeD";
    isConsecutive(s);
  }
    public static boolean isConsecutive(String s){
      boolean letters;
      letters = false;
      int counter = 0;
      String newS = s.toLowerCase();
      for (int i = 0; i < newS.length() - 1; i++){
        if (newS.charAt(i) - newS.charAt(i+1) == 1){
          return true;
      } else if (newS.charAt(i) - newS.charAt(i+1) == -1) {
        return true;
      }
     }
      return letters;
    }
   }

4 个答案:

答案 0 :(得分:4)

  for (int i = 0; i < newS.length() - 1; i++){
    if (newS.charAt(i) - newS.charAt(i+1) == 1){
      return true;
  } else if (newS.charAt(i) - newS.charAt(i+1) == -1) {
    return true;
  }

这不是你想要的。

  • 您不希望在 for循环中从返回true。除非您发现订单未得到维护,否则不会。否则你会太早回来。另一方面,如果您发现订单实际上已关闭,则返回false即可。
  • 您不想检查char - otherchar == 1还是-1,因为它太严格了。你想看看&gt; 0或&lt; 0

答案 1 :(得分:3)

你没有对返回值做任何事情。如果要在控制台上查看,请执行System.out.println(isConsecutive(s));。这就是“什么都没发生”的原因。它在你写的时候正常运行;它只是不产生任何可见的输出。

答案 2 :(得分:1)

只需使用System.out.println(isConsecutive(s));替换main方法的最后一行。这应该工作。

答案 3 :(得分:0)

您没有打印任何内容,请尝试System.out.println(isConsecutive(s));