We can also give our functions the ability to return a value, such as the result of a calculation, back to the code where it was called from. By doing so, a function call can actually produce a value that can be stored in a variable and used elsewhere.
This code gives a quick example of what that would look like. Let’s step through this code and see how it works. As always, we’ll start in the
The first line of code is actually a variable assignment statement. But, before we can store a value in the
returnValue variable, we must call the
last function and get the result.
last function, we provide it a set of numbers as arguments, and it will return the last one. So, once we reach a
return keyword, we’ll identify that value and “pass it back” to the
main() function as the result of this function call. In effect, we can replace the code with the function call with the value that is returned, just like we learned how to do earlier in this course when evaluating mathematical expressions in code. So, we’ll store the value 9 in the variable
returnValue, since that is what was returned from the function
One other important thing to notice is that this function includes a second return statement,
return -1 at the end of the code and outside of the If-Then statement. Java requires that all possible code paths through a function return a value. So, what if we call the
last() function without any parameters provided? In that case, it will not enter the true branch of the If-Then statement, so we need to include a return statement outside of the If-Then statement to handle this case. Thankfully, the Java compiler will warn us if we forget to do this.
At this point, we’ve covered many important features of functions in our programs: we can define functions, create parameters, and return values. We can even overload functions using different sets of parameters, or accept a variable number of parameters in our functions. All of these are very helpful techniques as we start building larger programs.