我希望你过得愉快。我之所以再次寻求帮助,是因为我被要求执行一项我显然无能为力的任务。我不希望在指导中给出答案,也许只是一点点答案,因为我和专业的泥摔跤手一样厚。
https://wiki.ittc.ku.edu/ittc/EECS168:Homework3
如果你想看,上面是我的任务,但这只是背景故事。
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;
}
}
我很确定循环它是完全错误的,它有点令人沮丧。现在最大的问题是我得到一个错误“令牌上的语法错误”void“,@ expected”我也尝试了不同的类型,如int和double。没有骰子。我几乎都希望这不是一件非常简单的事情,因为我已经在这个愚蠢的小事,琐碎的事情上花了大约4个小时的努力。赋值说只使用一种void方法:
在Fighter Class中写两个方法;
public void input()
public boolean attack(Fighter opponent)
然而,我无法弄清楚如何使用它,所以我打算使用4或5,但显然我不擅长我做的事情。我为诋毁编程的好名而道歉,但是人们可能提供的任何帮助都将不胜感激。
一切顺利,
尼克
答案 0 :(得分:1)
首先要做的事情。您需要在main之外使用hitPoints()
方法。您无法将其嵌套在main()
方法中。
而且,hitPoints()
的返回类型为void,您在方法中有return语句。将返回类型更改为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
}
答案 1 :(得分:0)
两个问题:
首先,您尝试将方法封装在不合法的方法中。将hitPoints
移到主method
之外。
其次,您尝试从hitPoints
方法返回一个整数值,但根据其定义,它不返回任何内容:
public static void hitPoints()
因此,要么更改hitPoints
方法签名以返回int
,要么从方法中删除return
语句,如下所述:
return 0;