【问题标题】:Java Return Type And Method FailureJava 返回类型和方法失败
【发布时间】:2013-11-24 03:07:01
【问题描述】:

This 是我的任务。

public class Fighter {
public static void main(String[] args){
    String name;
    int hitPoints;
    int defenseLevel;
    int attackSpeed;
    Scanner input=new Scanner(System.in);

    
    public static void hitPoints(){
        int hitPoints;
        do{
            Scanner input=new Scanner(System.in);
            System.out.println("What is the hit points for the fighter");
            hitPoints=input.nextInt();
            return hitPoints;
        }while (hitPoints<=50);
        return 0;
    }
}

我很确定循环它是完全错误的。我收到一个错误Syntax error on token "void", @ expected"

我还尝试了不同的类型,例如intdouble。没有骰子。

作业说只使用一种 void 方法:

在 Fighter 类中编写两个方法;

public void input()
public boolean attack(Fighter opponent)

但是,我不知道如何使用 1,所以我打算使用 4 或 5。

【问题讨论】:

    标签: java methods static-methods void return-type


    【解决方案1】:

    首先要做的事情。您需要在 main 之外有 hitPoints() 方法。您不能将其嵌套在 main() 方法中。

    而且,hitPoints() 的返回类型是 void,方法中有返回语句。将返回类型改为int,这样就可以从这个方法返回一个int值给调用方法。

    public static int hitPoints(){
    

    另外,由于它是一个do-while 循环(退出检查循环),因此您不需要默认返回。而是默认将hitPoints 初始化为0

    public static int hitPoints() { // return type is int, to return an int value
        int hitPoints = 0; // default value
        do {
            Scanner input = new Scanner(System.in);
            System.out.println("What is the hit points for the fighter");
            hitPoints = input.nextInt();
            return hitPoints;
        } while (hitPoints <= 50);
        // return 0; // not required, as its a do-while loop above
    }
    

    【讨论】:

    • 你太棒了,非常感谢你的回答,而且这么快。我在这里学到了很多东西,人们很感激。我非常沮丧,不得不走开几分钟。能回来制定进攻计划真是太好了。
    【解决方案2】:

    两个问题:

    首先,您试图将一个方法封装在一个不合法的方法中。将您的 hitPoints 移到主 method 之外。

    其次,您尝试从 hitPoints 方法返回一个整数值,但根据其定义,它不会返回任何内容:

    public static void hitPoints()
    

    因此,要么更改您的 hitPoints 方法签名以返回 int,要么从此处提到的方法中删除 return 语句:

     return 0;
    

    【讨论】:

    • 非常感谢您的回答,出于某种原因,我认为一切都必须在 main 方法中,但我想这只是 main 类。将这条线视为一个定义也确实很有帮助。再次感谢您。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-16
    • 2018-10-19
    • 1970-01-01
    • 2018-11-19
    相关资源
    最近更新 更多