I am wishing to prompt the user again if a double outside of the accepted range (0-100) is input, until the input is valid. When the input is considered valid, I am wanting to return correct input value, yet, returned instead is the first incorrect value. How can I return the correct input, as accepted by the if statement?? Many thanks!
public class examscore {
    public static void main (String[] args) {
        Scanner console = new Scanner(System.in);
        double sumfin = finalscore(console); 
        System.out.println(sumfin); // if user input is initially invalid, but then corrected, the first, incorrect, value is printed
    }
    public static double finalscore (Scanner console) { 
        System.out.println();
        System.out.println("Input final exam score: ");
        while(!console.hasNextDouble()) { //prompts the user, if invalid input, to input again, until a valid value is input
            System.out.println("Please input a mark between 0 and 100. ");
            console.next();
        } 
        double examscore = console.nextDouble();
        if (examscore >=0 && examscore<= 100) {
            System.out.println();
            System.out.println("Exam Score = "+examscore);
        } else {
            System.out.println("Error:");
            finalscore (console);
        }
        return examscore; //an attempt to return the VALID exam score: fails
    }
}
 
     
     
     
    