Day 5 of 30-Day .NET Challenge: While & do-while
Tags: beginners, webdev, programming, csharp
Published: 2024-03-24 06:18:45

## Introduction

The do-while and while statements provide control over code execution flow by repeating a block of code until a condition is satisfied.

### Learning Objectives

* Utilize the do-while loop to iterate through a code block.

* Implement the while loop to iterate through a code block as well.

### Prerequisites for Developers

* Familiarity with utilizing the if statement.

* Proficiency in using foreach and for iteration statements.

* Competence in writing Boolean expressions.

* Knowledge of generating random numbers using the System.Random class and the Random.Next() method.

## Getting Started

### What is the do-while loop?

The do-while statement runs a statement or block of statements as long as a specified Boolean expression remains true. As this expression is evaluated after each loop execution, a do-while loop executes at least once.

### Example: do-while

Let’s create code that continuously generates random numbers ranging from 1 to 10 until we generate the number 7. The number 7 could be generated in one iteration or after several iterations.

To begin, create a static class file called “WhileLoop.cs” within the console application. Insert the provided code snippet into this file.

    /// <summary>
    /// Outputs
    /// 2
    /// 5
    /// 8
    /// 2
    /// 7
    /// </summary>
    public static void DoWhileLoopExample()
    {
        Random random = new Random();
        int current = 0;
    
        do
        {
            current = random.Next(1, 11);
            Console.WriteLine(current);
        } while (current != 7);
    }

Execute the code from the main method as follows

    
    #region Day 5 - While & do-while
    
    WhileLoop.DoWhileLoopExample();
    
    #endregion

### Console Output

    2
    5
    8
    2
    7

### Example: while

The while statement will iterate based on the Boolean expression. To do that add another method into the same static class as shown below

    /// <summary>
    /// Outputs
    /// 9
    /// 7
    /// 5
    /// Last number: 1
    /// </summary>
    public static void WhileLoopExample()
    {
        Random random = new Random();
        int current = random.Next(1, 11);
    
        while (current >= 3)
        {
            Console.WriteLine(current);
            current = random.Next(1, 11);
        }
        Console.WriteLine($"Last number: {current}");
    }

Execute the code from the main method as follows

    #region Day 5 - While & do-while
    
    WhileLoop.WhileLoopExample();
    
    #endregion

### Console Output

    9
    7
    5
    Last number: 1

### Continue statement with do-while

Sometimes, developers need to skip the rest of the code within a code block and move on to the next iteration. To achieve this add another method into the same static class as shown below
```
    /// <summary>
    /// Outputs
    /// 5
    /// 1
    /// 6
    /// 7
    /// </summary>
    public static void ContinueDoWhileLoopExample()
    {
        Random random = new Random();
        int current = random.Next(1, 11);
    
        do
        {
            current = random.Next(1, 11);
    
            if (current >= 8) continue;
    
            Console.WriteLine(current);
        } while (current != 7);
    }
```
Execute the code from the main method as follows
```
    #region Day 5 - While & do-while
    
    WhileLoop.ContinueDoWhileLoopExample();
    
    #endregion
```
### Console Output
```
    5
    1
    6
    7
```
## Complete Code on GitHub
[GitHub — ssukhpinder/30DayChallenge.Net](https://github.com/ssukhpinder/30DayChallenge.Net/tree/main)

### C# Programming🚀

Thank you for being a part of the C# community! Before you leave:

#### If you’ve made it this far, please show your appreciation with a clap and follow the author! 👏️️

Follow us: [X](https://twitter.com/sukhsukhpinder) | [LinkedIn](https://www.linkedin.com/in/sukhpinder-singh/) | [Dev.to](https://dev.to/ssukhpinder) | [Hashnode](https://dotnet.hashnode.dev/) | [Newsletter](https://www.linkedin.com/newsletters/net-programming-7031098498754195456/) | [Tumblr](https://www.tumblr.com/settings/blog/codewithsukh)

Visit our other platforms: [GitHub](https://github.com/ssukhpinder) | [Instagram](https://www.instagram.com/codewithsukh/) | [Tiktok](https://www.tiktok.com/@codewithsukh) | [Quora](https://www.quora.com/profile/Sukhpinder-Singh-4) | [Daily.dev](https://app.daily.dev/devcard)

More content at [C# Programming](https://medium.com/c-sharp-progarmming)