using System;
public class Exercise
{
static int Main()
{
var Number1 = 0;
var Number2 = 0;
var Maximum = 0;
var Num1 = "";
var Num2 = "";
Console.Write("Enter first numbers: ");
Num1 = Console.ReadLine();
Console.Write("Enter second numbers: ");
Num2 = Console.ReadLine();
Number1 = int.Parse(Num1);
Number2 = int.Parse(Num2);
Maximum = (Number1 < Number2) ? Number2 : Number1;
Console.Write("\nThe maximum of ");
Console.Write(Number1);
Console.Write(" and ");
Console.Write(Number2);
Console.Write(" is ");
Console.WriteLine(Maximum);
Console.WriteLine();
return 0;
}
}
Here is an example of running the program;
Enter first numbers: 244
Enter second numbers: 68
The maximum of 244 and 68 is 244
|
Practical
Learning: Introducing Conditional Switches |
|
- Start Microsoft Visual C#
- Create a new Console Application named FlowerShop2
- To create a new class, on the main menu, click Project -> Add Class...
- Set the Name of the class to Flower and click Add
- Complete the Flower.cs file as follows:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FlowerShop2
{
public enum FlowerType
{
Roses = 1,
Lilies,
Daisies,
Carnations,
LivePlant,
Mixed
}
public enum FlowerColor
{
Red = 1,
White,
Yellow,
Pink,
Orange,
Blue,
Lavender,
Mixed
}
public enum FlowerArrangement
{
Bouquet = 1,
Vase,
Basket,
Any
}
public class Flower
{
public FlowerType Type;
public FlowerColor Color;
public FlowerArrangement Arrangement;
public decimal UnitPrice;
public Flower()
{
Type = FlowerType.Mixed;
Color = FlowerColor.Mixed;
Arrangement = FlowerArrangement.Vase;
UnitPrice = 0.00M;
}
public Flower(FlowerType type)
{
Type = type;
Color = FlowerColor.Mixed;
Arrangement = FlowerArrangement.Vase;
UnitPrice = 0.00M;
}
public Flower(FlowerType type, FlowerColor color,
FlowerArrangement argn, decimal price)
{
Type = type;
Color = color;
Arrangement = argn;
UnitPrice = price;
}
}
}
|
- Save the file
|
if…else if and if…else
if…else
|
|
|
If you use an if...else conditional
statement, you can process only two statements. In some cases, you may
deal with more than two conditions. In this case, you can use an if...else
if condition. Its formula is:
if(Condition1) Statement1;
else if(Condition2) Statement2;
The compiler would first check Condition1. If
Condition1 is true, then Statement1 would be executed. If Condition1
is false, then the compiler would check Condition2. If Condition2
is true, then the compiler would execute Statement2. Any other result
would be ignored. 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 Garage = "";
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;
else if (Choice == 2) Type = HouseType.Townhouse;
Console.Write("Does the house have an indoor garage (1=Yes/0=No)? ");
var Answer = int.Parse(Console.ReadLine());
if (Answer == 1)
Garage = "Yes";
else
Garage = "No";
Console.WriteLine("\nDesired House Type: {0}", Type);
Console.WriteLine("Has indoor garage? {0}", Garage);
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
Does the house have an indoor garage (1=Yes/0=No)? 1
Desired House Type: SingleFamily
Has indoor garage? Yes
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
Does the house have an indoor garage (1=Yes/0=No)? 6
Desired House Type: Townhouse
Has indoor garage? No
Press any key to continue . . .
Notice that only two conditions are evaluated. Any
condition other than these two is not considered. Because there can be
other alternatives, the C# language provides an alternate else as the
last resort. Its formula is:
if(Condition1)
Statement1;
else if(Condition2)
Statement2;
else
Statement-n;
|
|
|
if(Condition1)
Statement1;
else if(Condition2)
Statement2;
else if(Condition3)
Statement3;
else
Statement-n;
|
The compiler will check the first condition. If
Condition1 is true, it executes Statement1. If Condition1 is false,
then the compiler will check the second condition. If Condition2 is
true, it will execute Statement2. When the compiler finds a Condition-n
to be true, it will execute its corresponding statement. It that Condition-n is false, the compiler will check the subsequent condition.
This means you can include as many conditions as you see fit using the
else if statement. If after examining all the known possible conditions
you still think that there might be an unexpected condition, you can use
the optional single else. Here is an example:
using System;
public enum HouseType
{
Unknown,
SingleFamily,
Townhouse,
Condominium
}
public class Exercise
{
public static int Main()
{
var Type = HouseType.Unknown;
var Choice = 0;
var Garage = "";
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;
else if (Choice == 2)
Type = HouseType.Townhouse;
else if (Choice == 3)
Type = HouseType.Condominium;
else
Type = HouseType.Unknown;
Console.Write("Does the house have an indoor garage (1=Yes/0=No)? ");
var Answer = int.Parse(Console.ReadLine());
if (Answer == 1)
Garage = "Yes";
else
Garage = "No";
Console.WriteLine("\nDesired House Type: {0}", Type);
Console.WriteLine("Has indoor garage? {0}", Garage);
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
Does the house have an indoor garage (1=Yes/0=No)? 0
Desired House Type: Condominium
Has indoor garage? No
Press any key to continue . . .
When defining an expression whose result would lead to a specific program execution, the
switch statement considers that result and executes a statement based on the possible outcome of that expression, this possible outcome is called a case. The different outcomes are listed in the body of the
switch statement and each case has its own execution, if necessary. The body of a
switch statement is delimited from an opening to a closing curly brackets: “{“ to “}”. The syntax of the switch statement is:
switch(Expression)
{
case Choice1:
Statement1;
break;
case Choice2:
Statement2;
break;
case Choice-n:
Statement-n;
break;
}
 |
In C++, you can omit the break keyword in a case.
This creates the "fall through" effect as follows: after code
executes in a case, if nothing "stops" it, the execution
continues to the next case. This has caused problems and confusing
execution in the past in some C++ programs. To avoid it, C# requires code
interruption at the end of every case. This interruption is done using the
break keyword. |
The expression to examine in a case statement is an integer. Since
a member of an enumerator
(enum) and the character (char) data types are just other forms of integers, they can be used too. Here is an example of using the
switch statement:
using System;
public enum HouseType
{
Unknown,
SingleFamily,
Townhouse,
Condominium
}
public class Exercise
{
public static int Main()
{
var Type = HouseType.Unknown;
var Choice = 0;
var Garage = "";
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());
switch (Choice)
{
case 1:
Type = HouseType.SingleFamily;
break;
case 2:
Type = HouseType.Townhouse;
break;
case 3:
Type = HouseType.Condominium;
break;
}
Console.Write("Does the house have an indoor garage (1=Yes/0=No)? ");
var Answer = int.Parse(Console.ReadLine());
if (Answer == 1)
Garage = "Yes";
else
Garage = "No";
Console.WriteLine("\nDesired House Type: {0}", Type);
Console.WriteLine("Has indoor garage? {0}", Garage);
return 0;
}
}
When establishing the possible outcomes that the switch statement should consider, at times there will be possibilities other than those listed and you will be likely to consider them. This special case is
handled by the default keyword. The default case would be considered if none of the listed cases matches the supplied answer. The syntax of the
switch statement that considers the default case would be:
switch(Expression)
{
case Choice1:
Statement1;
break;
case Choice2:
Statement2;
break;
case Choice-n:
Statement-n;
break;
default:
Other-Possibility;
break;
}
 |
In C++, the default section doesn't
need a break keyword because it is the last. In C#, every case and
the default section must have its own exit mechanism, which is
taken care of by a break keyword. |
Therefore another version of the program above would be
using System;
public enum HouseType
{
Unknown,
SingleFamily,
Townhouse,
Condominium
}
public class Exercise
{
public static int Main()
{
var Type = HouseType.Unknown;
var Choice = 0;
var Garage = "";
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());
switch (Choice)
{
case 1:
Type = HouseType.SingleFamily;
break;
case 2:
Type = HouseType.Townhouse;
break;
case 3:
Type = HouseType.Condominium;
break;
default:
Type = HouseType.Unknown;
break;
}
Console.Write("Does the house have an indoor garage (1=Yes/0=No)? ");
var Answer = int.Parse(Console.ReadLine());
if (Answer == 1)
Garage = "Yes";
else
Garage = "No";
Console.WriteLine("\nDesired House Type: {0}", Type);
Console.WriteLine("Has indoor garage? {0}", Garage);
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? 8
Does the house have an indoor garage (1=Yes/0=No)? 2
Desired House Type: Unknown
Has indoor garage? No
Press any key to continue . . .
Besides a value of an int type, you can also use
another variant of integers on a switch statement. For example, you can
use letters to validate the cases. Here is an example:
using System;
public enum HouseType
{
Unknown,
SingleFamily,
Townhouse,
Condominium
}
public class Exercise
{
public static int Main()
{
var Type = HouseType.Unknown;
var Choice = 0;
var Garage = "";
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());
switch (Choice)
{
case 1:
Type = HouseType.SingleFamily;
break;
case 2:
Type = HouseType.Townhouse;
break;
case 3:
Type = HouseType.Condominium;
break;
default:
Type = HouseType.Unknown;
break;
}
Console.Write("Does the house have an indoor garage (y/n)? ");
var Answer = char.Parse(Console.ReadLine());
switch (Answer)
{
case 'y':
Garage = "Yes";
break;
case 'Y':
Garage = "Yes";
break;
case 'n':
Garage = "No";
break;
case 'N':
Garage = "No";
break;
default:
Garage = "Not Specified";
break;
}
Console.WriteLine("\nDesired House Type: {0}", Type);
Console.WriteLine("Has indoor garage? {0}", Garage);
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
Does the house have an indoor garage (y/n)? y
Desired House Type: Condominium
Has indoor garage? Yes
Press any key to continue . . .
|
Practical
Learning: Using Conditional Switches |
|
- To create a new class, in the Solution Explorer, right-click the project
name, position the mouse on Add and click Class...
- Set the Name of the class to OrderProcessing and click Add
- Complete the OrderProcessing.cs file as follows:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FlowerShop2
{
class OrderProcessing
{
public Flower FlowerOrder;
public int Quantity;
public OrderProcessing()
{
FlowerOrder = new Flower();
}
public decimal GetTotalPrice()
{
return Quantity * FlowerOrder.UnitPrice;
}
public void GetFlowerType()
{
int choice = 0;
Console.WriteLine("Enter the Type of Flower Order");
Console.WriteLine("1. Roses");
Console.WriteLine("2. Lilies");
Console.WriteLine("3. Daisies");
Console.WriteLine("4. Carnations");
Console.WriteLine("5. Live Plant");
Console.WriteLine("6. Mixed");
Console.Write("Your Choice: ");
choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
FlowerOrder.Type = FlowerType.Roses;
break;
case 2:
FlowerOrder.Type = FlowerType.Lilies;
break;
case 3:
FlowerOrder.Type = FlowerType.Daisies;
break;
case 4:
FlowerOrder.Type = FlowerType.Carnations;
break;
case 5:
FlowerOrder.Type = FlowerType.LivePlant;
break;
default:
FlowerOrder.Type = FlowerType.Mixed;
break;
}
}
public void GetFlowerColor()
{
int choice = 0;
Console.WriteLine("Enter the Color");
Console.WriteLine("1. Red");
Console.WriteLine("2. White");
Console.WriteLine("3. Yellow");
Console.WriteLine("4. Pink");
Console.WriteLine("5. Orange");
Console.WriteLine("6. Blue");
Console.WriteLine("7. Lavender");
Console.WriteLine("8. Mixed");
Console.Write("Your Choice: ");
choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
FlowerOrder.Color = FlowerColor.Red;
break;
case 2:
FlowerOrder.Color = FlowerColor.White;
break;
case 3:
FlowerOrder.Color = FlowerColor.Yellow;
break;
case 4:
FlowerOrder.Color = FlowerColor.Pink;
break;
case 5:
FlowerOrder.Color = FlowerColor.Yellow;
break;
case 6:
FlowerOrder.Color = FlowerColor.Blue;
break;
case 7:
FlowerOrder.Color = FlowerColor.Lavender;
break;
default:
FlowerOrder.Color = FlowerColor.Mixed;
break;
}
}
public void GetFlowerArrangement()
{
int choice = 0;
Console.WriteLine("Enter the Type of Arrangement");
Console.WriteLine("1. Bouquet");
Console.WriteLine("2. Vase");
Console.WriteLine("3. Basket");
Console.WriteLine("4. Mixed");
Console.Write("Your Choice: ");
choice = int.Parse(Console.ReadLine());
switch (choice)
{
case 1:
FlowerOrder.Arrangement = FlowerArrangement.Bouquet;
break;
case 2:
FlowerOrder.Arrangement = FlowerArrangement.Vase;
break;
case 3:
FlowerOrder.Arrangement = FlowerArrangement.Basket;
break;
default:
FlowerOrder.Arrangement = FlowerArrangement.Any;
break;
}
}
public void ProcessOrder()
{
GetFlowerType();
GetFlowerColor();
GetFlowerArrangement();
Console.Write("Enter the Unit Price: ");
FlowerOrder.UnitPrice = decimal.Parse(Console.ReadLine());
Console.Write("Enter Quantity: ");
Quantity = int.Parse(Console.ReadLine());
}
public void ShowOrder()
{
Console.WriteLine("=======================");
Console.WriteLine("==-=-=Flower Shop=-=-==");
Console.WriteLine("-----------------------");
Console.WriteLine("Flower Type: {0}", FlowerOrder.Type);
Console.WriteLine("Flower Color: {0}", FlowerOrder.Color);
Console.WriteLine("Arrangement: {0}", FlowerOrder.Arrangement);
Console.WriteLine("Price: {0:C}", FlowerOrder.UnitPrice);
Console.WriteLine("Quantity: {0}", Quantity);
Console.WriteLine("Total Price: {0:C}", GetTotalPrice());
Console.WriteLine("=======================");
}
}
}
|
- Access the Program.cs file and complete it as follows:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace FlowerShop2
{
class Program
{
static void Main()
{
OrderProcessing order = new OrderProcessing();
order.ProcessOrder();
Console.WriteLine();
order.ShowOrder();
Console.WriteLine();
}
}
}
|
- Execute the application and test it. Here is an example:
Enter the Type of Flower Order
1. Roses
2. Lilies
3. Daisies
4. Carnations
5. Live Plant
6. Mixed
Your Choice: 4
Enter the Color
1. Red
2. White
3. Yellow
4. Pink
5. Orange
6. Blue
7. Lavender
8. Mixed
Your Choice: 7
Enter the Type of Arrangement
1. Bouquet
2. Vase
3. Basket
4. Mixed
Your Choice: 3
Enter the Unit Price: 45.85
Enter Quantity: 3
=======================
==-=-=Flower Shop=-=-==
-----------------------
Flower Type: Carnations
Flower Color: Lavender
Arrangement: Basket
Price: $45.85
Quantity: 3
Total Price: $137.55
=======================
Press any key to continue . . .
|
- Close the DOS window
Each of the cases we have used so far examined only one
possibility before executing the corresponding statement. You can combine cases
to execute the same statement. To do this, type a case, its value, and the
semi-colon. Type another case using the same formula. When the cases are ready,
you can then execute the desired statement. Here is an example:
using System;
public enum HouseType
{
Unknown,
SingleFamily,
Townhouse,
Condominium
}
public class Exercise
{
public static int Main()
{
var Type = HouseType.Unknown;
var Choice = 0;
var Garage = "";
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());
switch (Choice)
{
case 1:
Type = HouseType.SingleFamily;
break;
case 2:
Type = HouseType.Townhouse;
break;
case 3:
Type = HouseType.Condominium;
break;
default:
Type = HouseType.Unknown;
break;
}
Console.Write("Does the house have an indoor garage (y/n)? ");
var Answer = char.Parse(Console.ReadLine());
switch (Answer)
{
case 'y':
case 'Y':
Garage = "Yes";
break;
case 'n':
case 'N':
Garage = "No";
break;
default:
Garage = "Not Specified";
break;
}
Console.WriteLine("\nDesired House Type: {0}", Type);
Console.WriteLine("Has indoor garage? {0}", Garage);
return 0;
}
}
This would produce:
Enter the type of house you want to purchase
1. Single Family
2. Townhouse
3. Condominium
You Choice? 3
Does the house have an indoor garage (y/n)? Y
Desired House Type: Condominium
Has indoor garage? Yes
Press any key to continue . . .
One of the most fundamental uses of enumerations is to
process them in a switch statement. To do this, you pass the value of an
enumeration to a switch. The values of the enumerations are then processed in
the case statements. Here is an example:
using System;
public enum HouseType
{
Unknown,
SingleFamily,
Townhouse,
Condominium
}
public class Exercise
{
public static int Main()
{
var PropertyType = "";
var Choice = 0;
var Garage = "";
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());
switch ((HouseType)Choice)
{
case HouseType.SingleFamily:
PropertyType = "Single Family";
break;
case HouseType.Townhouse:
PropertyType = "Townhouse";
break;
case HouseType.Condominium:
PropertyType = "Condominium";
break;
default:
PropertyType = "Unknown";
break;
}
Console.Write("Does the house have an indoor garage (y/n)? ");
var Answer = char.Parse(Console.ReadLine());
switch (Answer)
{
case 'y':
case 'Y':
Garage = "Yes";
break;
case 'n':
case 'N':
Garage = "No";
break;
default:
Garage = "Not Specified";
break;
}
Console.WriteLine("\nDesired House Type: {0}", PropertyType);
Console.WriteLine("Has indoor garage? {0}", Garage);
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
Does the house have an indoor garage (y/n)? N
Desired House Type: Single Family
Has indoor garage? No
Press any key to continue . . .
|
|