This question already has answers here:
Can someone explain a void return type in Java?
                                
                                    (5个答案)
                                
                        
                                4年前关闭。
            
                    
我想让我的函数无效getScore(),但我希望这段代码仍然可以正常工作。我试图弄清楚我需要使用哪些论据,如果我缺少任何其他代码来使此无效方法起作用,我将如何使用它。有什么想法吗?

import java.util.Scanner;

public class LowestScore {

    int grade;
    static int test1, test2, test3, test4, test5;

    public static void main(String[] args){
        getScore(test1);
        test2 = getScore();
        test3 = getScore();
        test4 = getScore();
        test5 = getScore();
        System.out.print("Test1" +test1);
        System.out.print("Test2" +test2);
        System.out.print("Test3" +test3);
        System.out.print("Test4" +test4);
        System.out.print("Test5" +test5);
    }

    void getScore(){

        Scanner score = new Scanner(System.in);
        boolean testNum = false;
        //int grade = 0;
        do{
            try{
                testNum = true;
                System.out.print("Enter in a test grade.");
                grade = score.nextInt();

                if((grade < 0) || (grade > 100)){
                    System.out.print("Invalid Entry. ");
                    testNum = false;

                }
            }catch (Exception e){
                System.out.print("What you entered was not a grade. Try again. ");
                testNum = false;
                @SuppressWarnings("unused")
                String clear = score.nextLine();
            }
        }while(!testNum);
        //return;
        //return grade;
    }
}

最佳答案

我想让我的函数无效getScore(),但是我想要这段代码
  仍然可以正常工作。


就像我会割狗的腿,但它仍然可以运行。

那样的话int score = getScore()是不正确的,为什么?因为您的getScore方法现在不返回任何内容,因为它现在是void,并且您将遇到编译时错误。

您应该首先准确确定getScore如果应按名称返回分数而不是必须返回分数。在呼叫方使用分数的结果是一个不同的概念。返回除呼叫者名称之外的任何名称,它应为getScorecalculateScore等。

09-12 17:19