Home

Counting and Looping

 

Introduction

A loop is a type of conditional statement that keeps checking a condition and executing a statement until the condition is false.

while a Condition is True

One of the operators used to perform a loop is called while. Its formula is:

while(Condition) Statement;

To execute this expression, the compiler first examines the Condition. If the Condition is true, then it executes the Statement. After executing the Statement, the Condition is checked again. AS LONG AS the Condition is true, it will keep executing the Statement. When or once the Condition becomes false, it exits the loop:

Here is an example:

using System;

class Program
{
    static void Main()
    {
        int Stories = 0;
	
        while( Stories <= 4 )
        {
            Console.WriteLine("Number {0}", Stories);
            Stories++;
        }
	
        Console.WriteLine();
    }
}

This would produce:

Number 0
Number 1
Number 2
Number 3
Number 4

Press any key to continue . . .

To effectively execute a while condition, you should make sure you provide a mechanism for the compiler to use or get a reference value for the condition, variable, or expression being checked. This is sometimes in the form of a variable being initialized although it could be some other expression. Such a while condition could be illustrated as follows:


do This while a Condition is True

The while loop is used first check a condition and then execute a statement. If the condition is false, the statement would never execute. Consider the following program:

using System;

class Program
{
    static void Main()
    {
        int Stories = 5;

        while (Stories <= 4)
        {
            Console.WriteLine("Number {0}", Stories);
            Stories++;
        }
	
        Console.WriteLine();
    }
}

When this program executes, nothing from the while loop would execute because, as the condition is checked in the beginning, it is false and the compiler would not get to the Statement. In some cases, you may want to execute a statement before checking the condition for the first time. This can be done using the do…while statement. Its formula is:

do Statement while (Condition);

The do…while condition executes a Statement first. After the first execution of the Statement, it examines the Condition. If the Condition is true, then it executes the Statement again. It will keep executing the Statement AS LONG AS the Condition is true. Once the Condition becomes false, the looping (the execution of the Statement) would stop.

If the Statement is a short one, such as made of one line, simply write it after the do keyword. Like the if and the while statements, the Condition being checked must be included between parentheses. The whole do…while statement must end with a semicolon.

Another version of the counting program seen previously would be:

using System;

class Program
{
    static void Main()
    {
        int Stories = 0;

        do
            Console.WriteLine("Number {0}", Stories++);
        while (Stories <= 4);
	
        Console.WriteLine();
    }
}

This would produce:

Number 0
Number 1
Number 2
Number 3
Number 4

Press any key to continue . . .

If the Statement is long and should span more than one line, start it with an opening curly bracket "{" and end it with a closing curly bracket "}".

Practical LearningPractical Learning: Introducing Boolean Variables

  1. Start Microsoft Visual C#
  2. Create a new Console Application named FlowerShop3
  3. To create a new class, in the Class View, right-click the project name -> Add -> Class...
  4. Set the Name of the class to Flower and click Add
  5. Complete the Flower.cs file as follows:
     
    using System;
    
    namespace FlowerShop3
    {
    
        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
        }
    
        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;
            }
        }
    }
  6. To create a new class, in the Solution Explorer, right-click the project name, position the mouse on Add and click Class...
  7. Set the Name of the class to OrderProcessing and click Add
  8. Complete the OrderProcessing.cs file as follows:
     
    using System;
    
    namespace FlowerShop3
    {
        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;
    
                do
                {
                    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());
                } while ((choice < 1) || (choice > 6));
    
                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;
    
                do
                {
                    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());
                } while ((choice < 1) || (choice > 8));
    
                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;
    
                do
                {
                    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());
                } while ((choice < 1) || (choice > 4));
    
                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("=======================");
            }
        }
    }
  9. Access the Program.cs file and complete it as follows:
     
    using System;
    
    namespace FlowerShop3
    {
        class Program
        {
            static void Main()
            {
                OrderProcessing order = new OrderProcessing();
    
                order.ProcessOrder();
                Console.WriteLine();
    
                order.ShowOrder();
                Console.WriteLine();
            }
        }
    }
  10. 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: 8
    Enter the Type of Flower Order
    1. Roses
    2. Lilies
    3. Daisies
    4. Carnations
    5. Live Plant
    6. Mixed
    Your Choice: 2
    Enter the Color
    1. Red
    2. White
    3. Yellow
    4. Pink
    5. Orange
    6. Blue
    7. Lavender
    8. Mixed
    Your Choice: 9
    Enter the Color
    1. Red
    2. White
    3. Yellow
    4. Pink
    5. Orange
    6. Blue
    7. Lavender
    8. Mixed
    Your Choice: 0
    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: 8
    Enter the Type of Arrangement
    1. Bouquet
    2. Vase
    3. Basket
    4. Mixed
    Your Choice: 5
    Enter the Type of Arrangement
    1. Bouquet
    2. Vase
    3. Basket
    4. Mixed
    Your Choice: 2
    Enter the Unit Price: 42.85
    Enter Quantity:       2
    
    =======================
    ==-=-=Flower Shop=-=-==
    -----------------------
    Flower Type:  Lilies
    Flower Color: Lavender
    Arrangement:  Vase
    Price:        $42.85
    Quantity:     2
    Total Price:  $85.70
    =======================
    
    Press any key to continue . . .
  11. Close the DOS window

for

The for statement is typically used to count a number of items. At its regular structure, it is divided in three parts. The first section specifies the starting point for the count. The second section sets the counting limit. The last section determines the counting frequency. The syntax of the for statement is:

for(Start; End; Frequency) Statement;

The Start expression is a variable assigned the starting value. This could be Count = 0;

The End expression sets the criteria for ending the counting. An example would be Count < 24; this means the counting would continue as long as the Count variable is less than 24. When the count is about to rich 24, because in this case 24 is excluded, the counting would stop. To include the counting limit, use the <= or >= comparison operators depending on how you are counting.

The Frequency expression would let the compiler know how many numbers to add or subtract before continuing with the loop. This expression could be an increment operation such as ++Count.

Here is an example that applies the for statement:

using System;

class Program
{
    static void Main()
    {
        for (int Stories = 0; Stories <= 4; Stories++)
            Console.WriteLine("Number {0}", Stories);
	
        Console.WriteLine();
    }
}

This would produce:

Number 1
Number 2
Number 3
Number 4

Press any key to continue . . .

 

 

Previous Copyright © 2006-2016, FunctionX, Inc. Next