Return type

Last updated

In computer programming, the return type (or result type) defines and constrains the data type of the value returned from a subroutine or method. [1] In many programming languages (especially statically-typed programming languages such as C, C++, Java) the return type must be explicitly specified when declaring a function.

In the C example:

intcalculateSum(inta,intb){returna+b;}

the return type is int . The program can therefore rely on the method returning a value of type int. Various mechanisms are used for the case where a subroutine does not return any value, e.g., a return type of void is used in some programming languages:

voidsayHello(){printf("Hello, world!");}

Returning a value from a method

A method returns to the code that invoked it when it completes all the statements in the method, reaches a return statement, or throws an exception, whichever occurs first.

To declare a method's return type, it is included in its method declaration. Within the body of the method, the return statement is used to return the value.

Any method declared void does not return a value. It does not need to contain a return statement, but it may do so. In such a case, a return statement can be used to branch out of a control flow block and exit the method and is simply used like this:

return;

If a value from a method declared void is returned, a compiler error will occur.

Any method that is not declared void must contain a return statement with a corresponding return value, like this:

returnreturnValue;

The data type of the return value must match the method's declared return type; for instance, one cannot return an int value from a method declared to return a bool.

The getArea() method in the Rectangle class that was discussed in the sections on objects returns an int:

classRectangle{privateintwidth;privateintheight;// ...// A method for computing the area of the rectanglepublicintgetArea(){returnwidth*height;}}

This method returns the integer that the expression width * height evaluates to.

The getArea() method returns a primitive type. A method can also return a reference type. For example, in a program to manipulate Bicycle objects, we may have a method like this:

classBicycle{// bicycle class}classRaceEnvironment{// environment class}publicclassBicycleRace{// ...publicBicycleplayBicycleRace(Bicyclebike1,Bicyclebike2,RaceEnvironmentenv){Bicyclewinner;// Code to calculate which bike is // faster, given each bike's gear // and cadence and given the // environment (terrain and wind)returnwinner;}}

References

  1. Kernighan, Brian W.; Ritchie, Dennis M. (1988). The C Programming Language (2nd ed.). Prentice Hall. ISBN   0-13-110362-8.