-2

是我的任务。

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 Class 内部编写两个方法;

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

但是,我不知道如何用一个来做,所以我打算用 4 个或 5 个。

4

2 回答 2

1

第一件事。您需要hitPoints()在主要之外有方法。您不能将其嵌套在main()方法中。

而且,你的返回类型hitPoints()是无效的,你在方法中有返回语句。将返回类型更改为int,以便您可以int从该方法返回一个值给调用方法。

public static int hitPoints(){

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

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
}
于 2013-11-12T04:59:47.633 回答
0

两个问题:

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

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

public static void hitPoints()

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

 return 0;
于 2013-11-12T04:59:59.357 回答