【问题标题】:I want to make my function void [duplicate]我想让我的功能无效[重复]
【发布时间】:2015-08-25 05:28:49
【问题描述】:

我想让我的函数 void getScore(),但我希望这段代码仍然可以正常工作。我试图弄清楚我需要使用哪些论据,以及是否缺少任何其他代码来让这个 void 方法按我想要的方式工作。有什么想法吗?

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; 
    }
}

【问题讨论】:

  • test2 = getScore(); 这一行与getScore() 是一个void 方法完全不兼容。您不能getScore 成为void 方法并且拥有类似该行的任何东西。
  • 应该更像上面那一行吗?
  • 看起来应该是int getScore(),看起来应该是return grade
  • 无效方法不允许我返回一个int?

标签: java function void


【解决方案1】:

我想让我的函数 void getScore(),但我希望这段代码 仍然可以正常工作。

这有点像我会砍一条狗的腿,但它应该还能跑。

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

您应该首先确定您的getScore 应该做什么,如果它应该返回名称建议的分数而不是它必须返回分数。在调用方使用分数结果是一个不同的概念。现在,如果您的@987654325 @ 不返回任何内容,但名称对调用者来说很奇怪,它应该是 calculateScorecollectScore 等。

【讨论】:

  • 为这句话点赞:“我会砍狗的腿,但它仍然应该跑。”.. 方法名称是 getScore(),但它不应该返回分数 ;-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多