Java 值未从另一个类返回

Java 值未从另一个类返回,java,debugging,Java,Debugging,嗨,我正在做一个游戏,玩家遇到一个机器人,机器人让它猜1-10之间的数字。玩家有三次尝试,否则他们会死。我已经写了我所有的代码,猜测很好,但只要剧本做对了,他还是死了。我添加了几个print语句来查看代码返回的值,它似乎返回了错误的值。有人能帮我吗?谢谢 从这门课开始 if (choice != -1) { if (john[choice] != null) { if (john[choice].compPlayerAttack()) { System.out.print("IT'S GAME

嗨,我正在做一个游戏,玩家遇到一个机器人,机器人让它猜1-10之间的数字。玩家有三次尝试,否则他们会死。我已经写了我所有的代码,猜测很好,但只要剧本做对了,他还是死了。我添加了几个print语句来查看代码返回的值,它似乎返回了错误的值。有人能帮我吗?谢谢

从这门课开始

if (choice != -1) {
if (john[choice] != null) {
if (john[choice].compPlayerAttack()) {
 System.out.print("IT'S GAME OVER MAN!\n");
    System.exit(0);
}
else {
  System.out.println("Robot appears. Guess a number between 1-10. Get it right and you can pass, or you die. You have three chances.\"");
      int answer = 0;
      john[choice].toPass(answer);
      if (answer== 1) {
         System.out.println(answer);
          map[x][y].removeJohnPlayer();
         }
      else { System.out.println(answer);
        System.out.print("IT'S GAME OVER MAN!\n");
  System.exit(0);
  }
给这个班

public int toPass(int right){


    int hiddenNum = numram.nextInt(MAX_NUMBER);

    Scanner input = new Scanner(System.in);

    int numOfGuesses = 0;
    int a = right;

    do {
        System.out.println("Enter a number by guessing: ");

        int guessedNum = input.nextInt();
        numOfGuesses++; 

        if (guessedNum == hiddenNum) {
            System.out.println("Darn! Your number is matched. You may live.");
            System.out.println("You have made " + numOfGuesses + " attempts to find the number!");

            a = 1;
             break;

        } else if (guessedNum < hiddenNum) {
            System.out.println("Try a bigger number");


        } else if (guessedNum > hiddenNum) {
            System.out.println("Try a smaller number");

        }    

}   while (numOfGuesses < 3);
System.out.println(a);
return a;
public int-toPass(int-right){
int hiddenNum=numram.nextInt(最大值);
扫描仪输入=新扫描仪(System.in);
int numOfGuesses=0;
int a=右;
做{
System.out.println(“通过猜测输入一个数字:”);
int guessedNum=input.nextInt();
numOfGuesses++;
if(猜测数==hiddenNum){
System.out.println(“该死!你的号码匹配了,你可能还活着。”);
System.out.println(“您尝试了”+numOfGuesses+“查找数字!”);
a=1;
打破
}else if(猜测数隐藏数){
System.out.println(“尝试较小的数字”);
}    
}而(numfoguesss<3);
系统输出打印项次(a);
返回a;
}这里

john[choice].toPass(answer);
您正在忽略
toPass
方法返回的值

将其更改为:

answer = john[choice].toPass(answer);
顺便说一句,没有理由将参数传递给
toPass
方法,因为它没有使用它,也无法更改它(因为Java是一种传递值语言)。返回值就足够了

i、 e.将方法更改为
public int toPass()

您应该做的另一个更改是将返回类型更改为
boolean
。返回
true
false
比返回
1
0
更具可读性