Visual Basic Comparison and Logic

From Techotopia
Revision as of 14:46, 7 August 2007 by Neil (Talk | contribs)

Jump to: navigation, search

In the previous chapter (Visual Basic Arithmetic) we looked at how expressions are constructed in Visual Basic and looked in some detail at how to create arithmetic expressions. In this chapter we will look at constructing comparison and logic expressions in Visual Basic.

Visual Comparison Operators

Comparison operators provide the ability to compare one value against another and return either a True or False result depending on the status of the match. For example, you might use a comparison operator to check if a variable value matches a particular number, or whether one string is identical to another. Visual Basic provides a number of different operators for just about every comparison need.

The comparison operators are used with two operands, one to the left and one to the right of the operator. The following table outlines the Visual Basic comparison operators and provides brief descriptions and examples:

OperatorTypeDescriptionExamples
=Equal toReturns True if first operand equals secondDim intValue = 10
If intValue = 10 Then Exit
!=Not equal toReturns true if first operand is not equal to second$myVar = 10;
if ($myVar != 20)
echo 'myVar does not equal 10';
<>Not equal toReturns true if first operand is not equal to second$myVar = 10;
if ($myVar <> 20)
echo 'myVar does not equal 10';
===Identical toReturns true if first operand equals second in both value and type$myVar = 10;
$myString="10";
if ($myVar === $myString)
echo 'myVar and myString are same type and value';
!==Not identical toReturns true if first operand is not identical to second in both value and type$myVar = 10;
$myString="10";
if ($myVar !== $myString)
echo 'myVar and myString are not same type and value';
<Less thanReturns true if the value of the first operand is less than the second$myVar = 10;
if ($myVar < 20)
echo 'myVar if less than 20';
>Greater thanReturns true if the value of the first operand is greater than the second$myVar = 10;
if ($myVar > 5)
echo 'myVar if greater than 5';
<=Less than or equal toReturns true if the value of the first operand is less than, or equal to, the second$myVar = 10;
if ($myVar <= 5)
echo 'myVar is less than or equal to 5';
>=Greater than or equal toReturns true if the value of the first operand is greater than, or equal to, the second$myVar = 10;
if ($myVar >= 5)
echo 'myVar is greater than or equal to 5';

PHP Logical Operators

Logical Operators are also known as Boolean Operators because they evaluate parts of an expression and return a true or false value, allowing desicions to be made about how a script should proceed.

The first step to understanding how logical operators work is to construct a sentence rather than to look at a script example right away. Let's assume we need to check some aspect of two variables named $var1 and $var2. Our sentence might read:

If $var is less than 25 AND $var2 is greater than 45 display a message.

Here the logical operator is the "AND" part of the sentence. If we were to express this in PHP we would use the comparision operators we covered earlier together with the && logical operator:


if (($var1 < 25) && ($var2 > 45)
echo 'Our expression is true';

Similarly, if our sentence was to read:

If $var1 is less than 25 OR $var2 is greater than 45 display a message.

Then we would replace the "OR" with the PHP equavalent ||:


if (($var1 < 25) || ($var2 > 45)
echo 'Our expression is true';

Another useful logical operator is the Exclusive Or (XOR) operator. The XOR operator returns true if only one of the expressions evaluates to be true. For example:

If $var is EITHER less than 25 OR greater than 45 display a message

We represent XOR with the keyword xor:


if (($var1 < 25) xor ($var2 > 45)
echo 'Our expression is true';

The final Logical Operator is the NOT operator which simply inverts the result of an expression. The ! character represents the NOT operater and can be used as follows:


(10 > 1)        // returns ''true''

!(10 > 1)       // returns ''false'' because we have inverted the result with the logical NOT