In the last section we covered functions that do work but do not return any values. The functions below will do work and also return a value.

The following function can be used to do a calculation an it will return a decimal value of the result.

Public Shared Function Calculate(ByVal num1 As Decimal, Byval num2 As Decimal, ByVal num3 As Decimal) As Decimal
	Dim finalValue As Decimal = num1 * num2
	finalValue = finalValue + num3
	Return finalValue
End Function

This function can compute a fibonacci sequence up to 100. It returns an integer value with the count of how many loops were performed to run the calculation.

Public Shared Function FibonacciSequenceToOneHundred() As Integer
	' See
	' By definition, the first two Fibonacci numbers are 0 and 1, and each subsequent number is the sum of the previous two.

	Dim a As Integer = 0
	Dim b As integer = 1
	Dim loopCount As Integer = b
	While b < 1000		
		a = b
		b = a+b
		loopCount +=1
	End While
	return loopCount
End Function

The main sub calls each function and sets variables with their return values.

Public Shared Sub Main()
	Dim calculatedValue as Decimal = Calculate(5.25D, 2.0D, 10.50D)
	System.Console.WriteLine("The calculated value is {0}", calculatedValue.ToString)
	System.Console.WriteLine("Calculate how many times through the loop to do a fibonacci sequence to 1000.")
	Dim result As Integer = FibonacciSequenceToOneHundred()
	System.Console.WriteLine("Had to loop {0} times.  Never reached 1000 because of loop logic.", result)
End Sub