当被函数调用时,else不起作用

时间:2017-03-30 18:08:07

标签: java

 public static void main(String[] args) {
    //For String
    Scanner input = new Scanner(System.in);
    //For Letter
    Scanner word = new Scanner(System.in);
    String name;
     //Input For a String
    System.out.println("Enter A String");
        name = input.nextLine(); 



    //Input For a Char
    char letter[] = new char[3];
    System.out.println("Enter a Letter You Want to Search ");
    for(char c : letter)
        letter = word.nextLine().toCharArray();

    elfish(letter, name);

}

public static void elfish(char letter[], String name) {
     if(name.toLowerCase().contains(name.valueOf(letter).toLowerCase())) {
        System.out.println("Yes The Letter Contains Elfish");
     } else {
        System.out.println("You're Word is not in this String");
        }
}

我正在制作即将完成的节目。它实际上在字符串中搜索所需的字母,如果条件为真,则打印“if block”,如果条件为false,则“else block”应该运行但实际上它现在不起作用。只有“if block”正在运行。 “else block”也正常工作,直到它直接放在main函数中。请告诉我哪里出了什么问题。

1 个答案:

答案 0 :(得分:0)

在将任何内容放入数组之前,您尝试迭代字母。如果您取出for循环(保留letter的分配),代码应该在许多情况下正常运行。我不知道你想如何验证输入。

我猜你是新人。学习使用调试器可能会让人不知所措,但它是一个强大的工具。对于每个调试器和IDE,它会略有不同,但过程是相同的。

这里有更多信息:Breakpoints and step by step debug in Java?

但是,在这种情况下,在Google上查找IDE指南可能是最佳选择。