Conditional Statements |
|
if a Condition is True |
Introduction |
A conditional statement is an expression that produces a true or false result. You can use that result as you see fit. To create the expression, you use the Boolean operators we studied in the previous lesson. In the previous lesson, we saw only how to perform the operations and how to get the results, not how to use them. To use the result of a Boolean operation, the C# programming language provides some specific conditional operators. |
public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); Console.WriteLine("\nDesired House Type: {0}", type); return 0; } } Here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. TownHouse 3. Condominium You Choice? 3 Desired House Type: Unknown Press any key to continue . . . To check if an expression is true and use its Boolean result, you can use the if operator. Its formula is: if(Condition) Statement; The Condition can be the type of Boolean operation we studied in the previous lesson. That is, it can have the following formula: Operand1 BooleanOperator Operand2 If the Condition produces a true result, then the compiler executes the Statement. If the statement to execute is short, you can write it on the same line with the condition that is being checked. Here is an example: using System; public enum HouseType { Unknown, SingleFamily, TownHouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; Console.WriteLine("\nDesired House Type: {0}", type); return 0; } } Here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 Desired House Type: SingleFamily Press any key to continue . . . If the Statement is too long, you can write it on a different line than the if condition. Here is an example: using System; public enum HouseType { Unknown, SingleFamily, TownHouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; Console.WriteLine("\nDesired House Type: {0}", type); return 0; } } You can also write the Statement on its own line even if the statement is short enough to fit on the same line with the Condition. Although the (simple) if statement is used to check one condition, it can lead to executing multiple dependent statements. If that is the case, enclose the group of statements between an opening curly bracket “{“ and a closing curly bracket “}”. Here is an example: using System; public enum HouseType { Unknown, SingleFamily, TownHouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) { type = HouseType.SingleFamily; Console.WriteLine("\nDesired House Type: {0}", type); } return 0; } } If you omit the brackets, only the statement that immediately follows the condition would be executed. Just as you can write one if condition, you can write more than one. Here are examples: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.WriteLine("\nDesired House Type: {0}", type); return 0; } } Here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 3 Desired House Type: Condominium Press any key to continue . . .
public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.WriteLine("\nDesired House Type: {0}", type); if (type == HouseType.SingleFamily) Console.WriteLine("\nDesired House Matched"); return 0; } } If you use an if condition to perform an operation and if the result is true, we saw that you could execute the statement. As we saw in the previous section, any other result would be ignored. To address an alternative to an if condition, you can use the else condition. The formula to follow is: if(Condition) Statement1; else Statement2; Once again, the Condition can be a Boolean operation like those we studied in the previous lesson. If the Condition is true, then the compiler would execute Statement1. If the Condition is false, then the compiler would execute Statement2. Here is an example: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } public class Program { static int Main() { var type = HouseType.Unknown; var choice = 0; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.WriteLine("\nDesired House Type: {0}", type); if (type == HouseType.SingleFamily) Console.WriteLine("Desired House Matched"); else Console.WriteLine("No House Desired"); return 0; } } Here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 Desired House Type: SingleFamily Desired House Matched Press any key to continue . . . Here is another example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 2 Desired House Type: Townhouse No House Desired Press any key to continue . . .
|
Imagine that a real estate agent who will be using your program is meeting with a potential buyer and asking questions from the following program: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } public class Program { static int Main() { var type = HouseType.Unknown; var choice = 0; var value = 0D; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.Write("Up to how much can you afford? $"); value = double.Parse(Console.ReadLine()); Console.WriteLine("\nDesired House Type: {0}", type); Console.WriteLine("Maximum value afforded: {0:C}\n", value); return 0; } } Suppose a customer responds to these questions: she indicates that she wants single family house but she cannot afford more than $550,000: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 Up to how much can you afford? $550000 Desired House Type: SingleFamily Maximum value afforded: $550,000.00 Press any key to continue . . . When considering a house for this customer, there are two details to be validated here: the house must be a single family home, second, it must cost less than $550,001. We can create two statements as follows:
From our list of real estate properties, if we find a house that is a single family home, we put it in our list of considered properties:
On the other hand, if we find a house that is less than or equal to $550,000, we retain it:
One of the ways you can combine two comparisons is by joining them. For our customer, we want a house to meet BOTH criteria. If the house is a town house, based on the request of our customer, its conditional value is false. If the house is more than $550,000, the value of the Boolean Value is true. The Boolean operator used to join two criteria is called AND. This can be illustrated as follows:
In C#, the Boolean AND operator is performed using the && operator. Here is an example: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; var value = 0D; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); Console.Write("Up to how much can you afford? $"); value = double.Parse(Console.ReadLine()); if(choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.WriteLine("\nDesired House Type: {0}", type); Console.WriteLine("Maximum value afforded: {0:C}", value); if (type == HouseType.SingleFamily && value <= 550000) Console.WriteLine("\nDesired House Matched"); return 0; } } Here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 Up to how much can you afford? $450000 Desired House Type: SingleFamily Maximum value afforded: $450,000.00 Desired House Matched Press any key to continue . . . By definition, a logical conjunction combines two conditions. To make the program easier to read, each side of the conditions can be included in parentheses. Here is an example: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; var value = 0D; . . . if( (type == HouseType.SingleFamily) && (value <= 550000) ) Console.WriteLine("\nDesired House Matched"); return 0; } } Suppose we find a single family home. The first condition is true for our customer. With the AND Boolean operator, if the first condition is true, then we consider the second criterion. Suppose that the house we are considering costs $750,500: the price is out of the customer's range. Therefore, the second condition is false. In the AND Boolean algebra, if the second condition is false, even if the first is true, the whole condition is false. This would produce the following table:
This can be illustrated by the following run of the program: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } class Program { static void Main() { var type = HouseType.Unknown; int choice; var value = 0M; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.Write("Up to how much can you afford? $"); value = decimal.Parse(Console.ReadLine()); Console.WriteLine("\nDesired House Type: {0}", type); Console.WriteLine("Maximum value afforded: {0:C}", value); if (type == HouseType.SingleFamily && value <= 550000) Console.WriteLine("\nDesired House Matched"); else Console.WriteLine("\nThe House Doesn't Match the Desired Criteria"); } } Here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 Up to how much can you afford? $750000 Desired House Type: SingleFamily Maximum value afforded: $750,000.00 The House Doesn't Match the Desired Criteria Press any key to continue . . . Suppose we find a townhouse that costs $420,000. Although the second condition is true, the first is false. In Boolean algebra, an AND operation is false if either condition is false:
Here is an example of running the above program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 2 Up to how much can you afford? $420000 Desired House Type: Townhouse Maximum value afforded: $420,000.00 The House Doesn't Match the Desired Criteria Press any key to continue . . . If we find a single family home that costs $345,000, both conditions are true. In Boolean algebra, an AND operation is true if BOTH conditions are true. This can be illustrated as follows:
This can be revealed in the following run of the above program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 Up to how much can you afford? $345000 Desired House Type: SingleFamily Maximum value afforded: $345,000.00 Desired House Matched Press any key to continue . . . These four tables can be resumed as follows:
As you can see, a logical conjunction is true only of BOTH conditions are true. As seen above, the logical conjunction operator is used to combine two conditions. In some cases, you will need to combine more than two conditions. Imagine a customer wants to purchase a single family house that costs up to $450,000 with an indoor garage. This means that the house must fulfill these three requirements:
Here the program that could be used to check these conditions: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; var value = 0D; var hasIndoorGarage = false; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.Write("Up to how much can you afford? $"); value = double.Parse(Console.ReadLine()); Console.Write("Does the house have an indoor garage (1=Yes/0=No)? "); int ans = int.Parse(Console.ReadLine()); Console.WriteLine("\nDesired House Type: {0}", type); Console.WriteLine("Maximum value afforded: {0:C}", value); Console.Write("House has indoor garage: "); if (ans == 1) Console.WriteLine("Yes"); else Console.WriteLine("No"); if ((type == HouseType.SingleFamily) && (value <= 550000) && (ans == 1)) Console.WriteLine("\nDesired House Matched"); else Console.WriteLine("\nThe House Doesn't Match the Desired Criteria"); return 0; } } We saw that when two conditions are combined, the compiler first checks the first condition, followed by the second. In the same way, if three conditions need to be considered, the compiler evaluates the truthfulness of the first condition:
If the first condition (or any condition) is false, the whole condition is false, regardless of the outcome of the other(s). If the first condition is true, then the second condition is evaluated for its truthfulness:
If the second condition is false, the whole combination is considered false:
When evaluating three conditions, if either the first or the second is false, since the whole condition would become false, there is no reason to evaluate the third. If both the first and the second conditions are false, there is also no reason to evaluate the third condition. Only if the first two conditions are true will the third condition be evaluated whether it is true:
The combination of these conditions in a logical conjunction can be written as A && B && C. If the third condition is false, the whole combination is considered false:
To verify this, here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 Up to how much can you afford? $425000 Does the house have an indoor garage (1=Yes/0=No)? 0 Desired House Type: SingleFamily Maximum value afforded: $425,000.00 House has indoor garage: No The House Doesn't Match the Desired Criteria Press any key to continue . . . From our discussion so far, the truth table of the combinations can be illustrated as follows:
The whole combination is true only if all three conditions are true. This can be illustrated as follows:
Our real estate company has single family homes, townhouses, and condominiums. All of the condos have only one level, also referred to as a story. Some of the single family homes have one story, some have two and some others have three levels. All townhouses have three levels. Another customer wants to buy a home. The customer says that he primarily wants a condo, but if our real estate company doesn't have a condominium, that is, if the company has only houses, whatever it is, whether a house or a condo, it must have only one level (story) (due to an illness, the customer would not climb the stairs). When considering the properties of our company, we would proceed with these statements:
If we find a condo, since all of our condos have only one level, the criterion set by the customer is true. Even if we were considering another (type of) property, it wouldn't matter. This can be resumed in the following table:
The other properties would not be considered, especially if they have more than one story:
To check for either of two conditions, in Boolean algebra, you can use an operator called OR. We can show this operation as follows:
In Boolean algebra, this type of comparison is performed using the OR operator. In C#, the OR operator is performed using the || operator. Here is an example: using System; public enum HouseType { Unknown, SingleFamily, Townhouse, Condominium } public class Exercise { static int Main() { var type = HouseType.Unknown; var choice = 0; var stories = 1; Console.WriteLine("Enter the type of house you want to purchase"); Console.WriteLine("1. Single Family"); Console.WriteLine("2. Townhouse"); Console.WriteLine("3. Condominium"); Console.Write("You Choice? "); choice = int.Parse(Console.ReadLine()); if (choice == 1) type = HouseType.SingleFamily; if (choice == 2) type = HouseType.Townhouse; if (choice == 3) type = HouseType.Condominium; Console.Write("How many stories? "); stories = int.Parse(Console.ReadLine()); Console.WriteLine("\nDesired House Type: {0}", type); Console.WriteLine("Number of Stories: {0}", stories); if ((type == HouseType.Condominium) || (stories == 1)) Console.WriteLine("\nDesired House Matched"); else Console.WriteLine("\nThe House Doesn't Match the Desired Criteria"); return 0; } } Here is an example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 3 How many stories? 6 Desired House Type: Condominium Number of Stories: 6 Desired House Matched Press any key to continue . . . Suppose that, among the properties our real estate company has available, there is no condominium. In this case, we would then consider the other properties:
If we have a few single family homes, we would look for one that has only one story. Once we find one, our second criterion becomes true:
This can be illustrated in the following run of the above program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 1 How many stories? 1 Desired House Type: SingleFamily Number of Stories: 1 Desired House Matched Press any key to continue . . . If we find a condo and it is one story, both criteria are true. This can be illustrated in the following table:
The following run of the program demonstrates this: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 3 How many stories? 1 Desired House Type: Condominium Number of Stories: 1 Desired House Matched Press any key to continue . . . A Boolean OR operation produces a false result only if BOTH conditions ARE FALSE:
Here is another example of running the program: Enter the type of house you want to purchase 1. Single Family 2. Townhouse 3. Condominium You Choice? 2 How many stories? 2 Desired House Type: Townhouse Number of Stories: 2 The House Doesn't Match the Desired Criteria Press any key to continue . . .
As opposed to evaluating only two conditions, you may face a situation that presents three of them and must consider a combination of more than two conditions.
|
|
||
Previous | Copyright © 2008-2016, FunctionX, Inc. | Next |
|