java - 方法不打印/返回

标签 java methods println

我的一种方法有问题。我检查了一遍又一遍,似乎没有发现什么问题。我遇到的问题是该方法在调用它时不会在控制台中打印。我认为这可能与方法中的Scanner有关。

该方法的代码是:

public String cpuGuess() throws FileNotFoundException{
        Scanner fileRead = new Scanner(myGuesses);
        int line = rand.nextInt(99-1)+1;
        for(int i = 0; i <= line; i++){
            Guess = fileRead.next();
        }
        fileRead.close();
        CPUGuess = Guess;
        if(Arrays.asList(super.used).contains(CPUGuess)){
            System.out.println(cpu.cpuGuess());
        }
        else{
            StringBuffer hiddenBuff = new StringBuffer(hidden);
            for (int t = 0; t < phrase.length(); )
                if (CPUGuess == Character.valueOf(phrase.charAt(t)).toString()){
                    count++;
                }
            if (phrase.contains(CPUGuess)){
                ArrayList<Integer> indicies = new ArrayList<Integer>();
                for (int index = phrase.indexOf(CPUGuess.toString()); index >= 0; index = phrase.indexOf(CPUGuess.toString(), index + 1)){
                    indicies.add(index);
                }
                int[] index = new int[indicies.size()];
                for(int i = 0; i < indicies.size(); i++) {
                    index[i] = indicies.get(i);
                }
                for (int n = 0; n < index.length; n++){
                    hiddenBuff.setCharAt(index[n], CPUGuess.charAt(0));
                }
                hidden = hiddenBuff.toString();
                status = "Correct";
            }
            else if (!phrase.contains(CPUGuess)){
                System.out.println("Sorry, no " + Guess + "'s");
                System.out.println("Human, you're up!");
            }
            super.used.add(CPUGuess.charAt(0));
        }
        System.out.println(count + " " + CPUGuess + "s");
        count = 0;
        return hidden;
    }

我在main方法下调用主类中的方法:

public static void main(String[] args) throws FileNotFoundException {
    System.out.println("WHEEL... OF... FORTUNE!!!!");
    System.out.println(board.phraseGenerate());
    System.out.println(cpu.cpuGuess());
}

请注意,cpu 对象已经构建完毕,并且 board.phraseGenerate 创建了隐藏对象和短语。

感谢您的帮助,请不要居高临下,我在这方面相对较新,而且我看到很多帖子都得到了令人沮丧的反馈。

最佳答案

您必须在此 for 循环中递增 t:

for (int t = 0; t < phrase.length(); )
                if (CPUGuess == Character.valueOf(phrase.charAt(t)).toString()){
                    count++;
                }

此外,您缺少一个左大括号...我们中最好的人都会遇到这种情况。最后,带有增量和花括号:

for (int t = 0; t < phrase.length(); t++ ) { //Need that curly brace!

                   if (CPUGuess == Character.valueOf(phrase.charAt(t)).toString()){
                        count++;

     } 
}

                //t++ Probably important...!

关于java - 方法不打印/返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34057039/

相关文章:

java - 固定字符串长度添加空格和删除超出的字符

java - 没有看到任何对 Callable.call() 方法的调用,但 call() 方法内部的代码仍然被执行,call() 方法在哪里被调用?

Java printf 语句给出错误

java - java中println()的不同行为

java - appengine java 中的线程/后端

java - 如何使用反射获取注释类名称、属性值

java - EventQueue 和 EventDispatch 错误

Perl:确定函数的定义位置

java - 如何避免在 Java 中使用方法选择器参数(标志/boolean 参数)

java - java可以在Android中做printIn吗?