1.11M Members

Missing Return Statement Help

 
0
 

In the last line of this method I am getting a missing return statement error, and I cannot figure out why. Any ideas?

public static int parameter(int g){
        Scanner console=new Scanner(System.in);
        String hint=console.next();

        if(hint.equals("low")){
            g=(g/2)+g;
            return g;

        }else if(hint.equals("high")){
            g=(g/2);
            return g;

        }else if(hint.equals("correct")){
            g=g;
            return g;
        }
}
 
0
 

The method is defined to return an int value. The compiler sees that there could be a possibility of the code getting to the end of the if/else if statements and exiting the method without returning an int value. What if hint = "XXXX"?
Add a return with an int value at the end of the method.

 
0
 

What happends if hint is none of low/high/correct? It executes none of your return statements and drops down to line 17 without returning an int.

 
0
 

After doing that, no matter what I enter(low, high, correct), it returns g with no calculation. Is the format I've used the correct format to match with user input?

 
0
 

To see what the computer sees print out the value of hint with a println after it is read.
Be sure to add String delimiters before and after the variable so you can see all its characters:
System.out.println("hint="+hint+"<");

The equals() method is used to compare String values.

 
0
 

equals() method compares two Strings.
If you have given input High / Low / correct, it only matches with hint variable.
What you have stored in hint variable String ot integer?
If you give any input instead of these 3 like bbb or aaa, it will not execute any of these case,and also return nothing.

so find what you are storing in hint variable.

 
0
 

To solve this problem, simply set a variable equal to all of the return values in each of the if/else-if statements and then return that variable outside of the if/else-if blocks.

 
0
 

Zach&Kody: re-read your post, and you'll see why that's impossible. (and certainly not what is wanted).
either you return a default value if none of the cases are true, or throw an Exception.

You
This article has been dead for over six months: Start a new discussion instead
Post:
Start New Discussion
Tags Related to this Article