Mod
How can you use modulo division in the VB.NET language? With the Mod
operator, you can compute the remainder of a division expression.
Mod
is equivalent to the modulo operator in C-like languages. With Mod
we can determine whether a number is odd or even (its parity).
This example shows some Mod
expressions with constant Integers. When the value 90 goes into 1000 11 times, but leaves a remainder of 10. This is the result of 1000 Mod
90.
Mod
expressions show the same principle in action. The Console
output is shown.Module Module1 Sub Main() ' Compute some modulo expressions with Mod. Console.WriteLine(5 Mod 3) Console.WriteLine(1000 Mod 90) Console.WriteLine(100 Mod 90) Console.WriteLine(81 Mod 80) Console.WriteLine(1 Mod 1) End Sub End Module2 10 10 1 0
Using a Mod
expression is appropriate in a For
-loop. You can apply Mod
to the variable "i". In this program, we display "i" whenever it is divisible by 10.
Module Module1 Sub Main() ' Loop through integers. For i As Integer = 0 To 200 - 1 ' Test i with Mod 10. If i Mod 10 = 0 Then Console.WriteLine(i) End If Next End Sub End Module0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180 190
The parity of a number is whether it is odd or even. We can test parity by creating 2 functions in VB.NET that return true or false.
IsOdd
returns the opposite of IsEven
. It correctly handles negative and positive numbers.IsEven
uses modulo division (with Mod
) to see if the number is evenly divisible by 2 (and thus even).Boolean
(true or false). We test these methods with a simple For
-loop.Module Module1 Function IsOdd(ByVal number As Integer) As Boolean ' Handle negative numbers by returning the opposite of IsEven. Return IsEven(number) = False End Function Function IsEven(ByVal number As Integer) As Boolean ' Handles all numbers because it tests for 0 remainder. ' ... This works for negative and positive numbers. Return number Mod 2 = 0 End Function Sub Main() For i = -10 To 10 Console.WriteLine(i.ToString() + " EVEN = " + IsEven(i).ToString()) Console.WriteLine(i.ToString() + " ODD = " + IsOdd(i).ToString()) Next End Sub End Module-10 EVEN = True -10 ODD = False -9 EVEN = False -9 ODD = True -8 EVEN = True -8 ODD = False -7 EVEN = False -7 ODD = True -6 EVEN = True -6 ODD = False -5 EVEN = False -5 ODD = True -4 EVEN = True -4 ODD = False -3 EVEN = False -3 ODD = True -2 EVEN = True -2 ODD = False -1 EVEN = False -1 ODD = True 0 EVEN = True 0 ODD = False 1 EVEN = False 1 ODD = True 2 EVEN = True 2 ODD = False 3 EVEN = False 3 ODD = True 4 EVEN = True 4 ODD = False 5 EVEN = False 5 ODD = True 6 EVEN = True 6 ODD = False 7 EVEN = False 7 ODD = True 8 EVEN = True 8 ODD = False 9 EVEN = False 9 ODD = True 10 EVEN = True 10 ODD = False
In C-like languages, the "%" character expresses a modulo division. We cannot use this character in VB.NET. Instead the Mod
operator is used.
Modulo division is an important concept to understand in computer programming. In .NET, modulo division is used to implement collections such as Dictionary
.
The Mod
operator often comes in handy whenever a mathematical procedure is needed. We can use modulo for determining parity (odd or even).