简体   繁体   English

从另一个方法引用方法时需要标识符

[英]Identifier Expected when referencing a method from another method

I'm new to java so please bear with me while I explain my issue.我是 java 的新手,所以请耐心等待我解释我的问题。

I'm receiving an "identifier expected" error and having trouble figuring out why.我收到“预期标识符”错误并且无法找出原因。 I'm working on a guessing random number game with 3 different methods, randomNumber() for generating the random number and returning it as an int, userAttempt() for prompting and accepting the user guess and returning it as an int, and isGuessCorrect for comparing the user guess to the generated number.我正在使用 3 种不同方法进行猜测随机数游戏,randomNumber() 用于生成随机数并将其作为 int 返回,userAttempt() 用于提示和接受用户猜测并将其作为 int 返回,isGuessCorrect 用于将用户猜测与生成的数字进行比较。

My problem lies in this third method.我的问题在于第三种方法。 I want it to call upon the variables returned from randomNumber() and userAttempt() to compare the two (whether they're equal or if they're higher/lower).我希望它调用从 randomNumber() 和 userAttempt() 返回的变量来比较两者(无论它们相等还是更高/更低)。

Currently I'm declaring isGuessCorrect() as:目前我将 isGuessCorrect() 声明为:

public static void isGuessCorrect( randomNumber(), userAttempt() ){}

This is where I'm getting my error.这是我得到错误的地方。

So far I've tried calling the return values as they're initialized in my main method:到目前为止,我已经尝试调用在我的 main 方法中初始化的返回值:

public static void isGuessCorrect( correctAnswer, userGuess ){}

I've also tried declaring the values inside isGuessCorrect():我也尝试过在 isGuessCorrect() 中声明值:

public static void isGuessCorrect( randomNumber(), userAttempt() ){
    int correctAnswer1 = randomNumber();
    int userGuess1 = userAttempt();
}

If all that still doesn't make sense, here's my code in it's entirety:如果这一切仍然没有意义,这是我的完整代码:

import java.util.Random;
import java.util.Scanner;
    
public class GuessingGame {

    public static void main( String args[] ){
    
      int correctAnswer = randomNumber();
      int userGuess = userAttempt();

        randomNumber();
        userAttempt();
        isGuessCorrect();
    }
    
// randomNumber() is meant to generate a number between 1-100. 
// For testing purposes the number is then printed out.
// randomNumber() returns int generatedAnswer for future use in isGuessCorrect()
    
    public static int randomNumber(){
       
      Random rand = new Random();
        int generatedAnswer = rand.nextInt(100) + 1;
        System.out.println("Correct answer is: " + generatedAnswer); 
        return generatedAnswer;
    }
    
// userAttempt() is meant to prompt the user to enter in their guess 
// For testing purposes the guess is then printed out.
// userAttempt() returns int guessNumber for future use in isGuessCorrect()
    
    public static int userAttempt(){
      
      System.out.println("Please enter in your guess (1-100)");
      Scanner userGuessInput = new Scanner(System.in);
      int guessNumber = userGuessInput.nextInt();
      System.out.println("Your guess is: " + guessNumber);
      return guessNumber;
      
    }
    
    public static void isGuessCorrect( randomNumber(), userAttempt() ){
      
      if(userGuess == correctAnswer){
         
         System.out.println ("Correct! You win! :)");
      }else if(userGuess < correctAnswer){
         
         System.out.println ("Wrong. Try guessing higher next time!");
      }else{
      
         System.out.println ("Wrong. Try guessing lower next time!");
      }
      
    }


}

try doing this instead尝试这样做

public static void isGuessCorrect(){


  correctAnswer= randomNumber();
  userGuess = userAttempt();

  if(userGuess == correctAnswer){
     
     System.out.println ("Correct! You win! :)");
  }else if(userGuess < correctAnswer){
     
     System.out.println ("Wrong. Try guessing higher next time!");
  }else{
  
     System.out.println ("Wrong. Try guessing lower next time!");
  }
  
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM