22.dowhile

22.循环语句-dowhile


22.1 知识点

基本语法

do-while循环是一种循环结构,与while循环不同的是,do-while循环是先执行一次循环体,然后再判断条件是否满足。因此,do-while循环保证循环体至少会被执行一次。

语法结构

do
{
    //do while 循环语句块;
} while (bool类型的值);
// 注意 do while 语句 存在一个重要的分号

实际运用

do-while循环在实际运用中较少见,但在一些需要至少执行一次的情况下,它可以发挥作用。

示例

示例一
do
{
    Console.WriteLine("do while 循环语句块");
} while (false);
//只会输出一次"do while 循环语句块"
示例二
do
{
    Console.WriteLine("do while 循环语句块");
} while (true);
//会死循环,无限输出"do while 循环语句块"
示例三
int a = 0;
do
{
    Console.WriteLine(a);//0 1
    ++a;
} while (a < 2);

嵌套使用

ifswitchwhiledo-while等循环结构可以相互嵌套使用,根据实际需要选择合适的嵌套方式。

示例

do
{
    if (true)
    {
    }
    while (true)
    {
    }
    int i = 1;
    switch (i)
    {
        default:
            break;
    }
    break; //直接退出循环
    Console.WriteLine("111");
    continue; //不会执行后面的代码,直接跳到while的判断
    Console.WriteLine("222");
} while (false);

22.2 知识点代码

using System;

namespace Lesson19_循环语句_do_while
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("do...while循环");

            #region 知识点一 基本语法
            // while循环 是先判断条件再执行
            // do while循环 是先斩后奏 先至少执行一次循环语句块中的逻辑 再判断是否继续
            //do
            //{
            //    //do while 循环语句块;
            //} while (bool类型的值);
            // 注意 do while 语句 存在一个重要的分号
            #endregion

            #region 知识点二 实际使用

            // do while 使用较少

            do
            {
                Console.WriteLine("do while 循环语句块");
            } while (false);//只会输出一次"do while 循环语句块"

            do
            {
                Console.WriteLine("do while 循环语句块");
            } while (true);//会死循环 无限输出"do while 循环语句块"

            int a = 0;
            do
            {
                Console.WriteLine(a);//0 1
                ++a;
            } while (a < 2);
            #endregion

            #region 知识点三 嵌套使用
            // if switch while do while
            do
            {
                if (true)
                {


                }
                while (true)
                {

                }
                int i = 1;
                switch (i)
                {
                    default:
                        break;
                }

                break;//直接退出循环
                Console.WriteLine("111");
                continue;//不会执行后面的代码 直接跳到while的判断
                Console.WriteLine("222");
            } while (false);
            #endregion
        }
    }
}

22.3 练习题

要求用户输入用户名和密码,只要不是admin和8888就一直提示用户名或密码错误,请重新输入

// 变量声明 一定要注意声明在哪个语句块中
string userName = "";
string passWord = "";
bool isShow = false; // 控制提示的布尔值

do
{
    // 这句代码第一次肯定不能执行,用布尔值判断
    if (isShow)
    {
        Console.WriteLine("用户名或密码错误,请重新输入");
    }

    // 循环输入
    Console.WriteLine("请输入用户名");
    userName = Console.ReadLine();
    Console.WriteLine("请输入密码");
    passWord = Console.ReadLine();
    isShow = true; // 第一次之后就变成true
} while (userName != "admin" || passWord != "8888");

不断提示请输入你的姓名,直到输入q结束

string input = "";

do
{
    Console.WriteLine("请输入你的姓名");
    input = Console.ReadLine();
} while (input != "q");

22.4 练习题代码

using System;

namespace Lesson19_练习题
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("do while语句练习题");

            #region 练习题一
            //要求用户输入用户名和密码,
            //只要不是admin和8888就一直提示用户名或密码错误,请重新输入
            // 控制台输入 条件运算符 逻辑运算符

            //变量声明 一定要注意声明在哪个语句块中
            string userName = "";
            string passWord = "";
            bool isShow = false;//控制提示的布尔值
            do
            {
                //这句代码 第一次 肯定不能执行 用布尔值判断
                if (isShow)
                {
                    Console.WriteLine("用户名或密码错误,请重新输入");
                }
                //循环输入
                Console.WriteLine("请输入用户名");
                userName = Console.ReadLine();
                Console.WriteLine("请输入密码");
                passWord = Console.ReadLine();
                isShow = true;//第一次之后就变成true
            } while (userName != "admin" || passWord != "8888");

            #endregion

            #region 练习题二
            //不断提示请输入你的姓名,直到输入q结束

            string input = "";
            do
            {
                Console.WriteLine("请输入你的姓名");
                input = Console.ReadLine();
            } while (input != "q");
            #endregion
        }
    }
}


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 785293209@qq.com

×

喜欢就点赞,疼爱就打赏