在C++中,do while无限循环的定义是什么呢?do while无限循环的语法结构是什么?do while循环和while循环的功能有什么相同和不同之处呢?

问题描述:

分析下面的代码和结果回答下面的问题。在C++中,do while无限循环的定义是什么呢?do while无限循环的语法结构是什么?do while循环和while循环的功能有什么相同和不同之处呢?do while和while功能有相同也有不同。do whilei和while都是基于条件判断的循环结构 while是:判断->执行->判断->执行…的流程。do while是:执行->判断->执行->判断->执行的流程。do while适用于需要对循环体先执行的场景。因此do while使用的条件是至少循环体要执行一次的场景,比如猜数字的游戏,猜对至少需要猜测一次。do while用的并不是很多,多数使用while使用更多如何使用while无限循环开发一个猜数字的游戏?

代码:



// Created by 黑马程序员.
#include "iostream"
#include "random"
using namespace std;


int get_random_num(int min, int max)
{
    // 创建一个随机数生成器
    random_device rd;
    mt19937 gen(rd());


    // 定义一个均匀分布的整数范围
    uniform_int_distribution<> dis(min, max);

    // 生成一个随机数并输出
    int random_number = dis(gen);
    return random_number;
}

int main()
{
    /**
     * 需求:提供一个1-100的随机数字,让用户猜测。
     * 1. 提供无限次猜测机会
     * 2. 猜错了提示大了或者小了,猜对了程序结束
     */
    // 1. 先得到一个1-100的随机数字
    int num = get_random_num(1, 100);
    cout << num << endl;
    int guess_num;
    // 2. 让用户猜测
    do {
        cout << "请输入一个猜测的数字:" << endl;
        cin >> guess_num;

        if (guess_num > num) {
            cout << "你猜的大了" << endl;
        }else if (guess_num < num) {
            cout << "你猜的小了" << endl;
        } else {
            // 猜对了
            cout << "恭喜你,猜对了!";
        }
    } while (guess_num != num);

    return 0;
}

结果:

结果
D:\CLion_code\cmake-build-debug\CLion_code.exe
29
请输入一个猜测的数字:
29
恭喜你,猜对了!
Process finished with exit code 0

问题解答:

 

1. 在C++中,do-while无限循环的定义是什么?

在C++中,do-while无限循环是一种循环结构,它至少执行一次循环体代码,然后根据条件表达式判断是否继续执行循环。如果条件始终为真(true),循环将无限次执行,这种情况就是“无限循环”。

2. do-while无限循环的语法结构是什么?

do-while循环的语法结构如下所示:

do {
    // 循环体的代码
} while (条件表达式);

在do-while循环中,循环体的代码会在每次判断条件之前先执行一次,然后根据条件表达式的结果决定是否继续执行循环。如果条件为真,循环继续;如果条件为假,循环结束。

3. do-while循环和while循环的功能有什么相同和不同之处?

  • 相同点

    • 基于条件判断:do-while和while循环都依赖于条件表达式来决定是否继续执行循环。
    • 可以实现相同的功能:两者都可以用于实现任何循环需求,尽管它们的执行顺序不同。
  • 不同点

    • 执行顺序

      • while循环是“判断->执行”的结构:即在进入循环之前,先检查条件表达式是否为真,如果为真则执行循环体,如果为假则直接跳过循环体。
      • do-while循环是“执行->判断”的结构:即先执行一次循环体,然后再检查条件表达式。这意味着do-while循环的循环体至少会执行一次,即使条件一开始就为假。
    • 适用场景

      • while循环更适用于循环体的执行依赖于某个先前的条件时。
      • do-while循环适用于需要至少执行一次循环体的场景,如用户输入的验证或需要首次执行某个初始化步骤的情况。

4. 如何使用do-while无限循环开发一个猜数字的游戏?

在这段代码中,do-while循环用于开发一个简单的猜数字游戏。其步骤如下:

  1. 生成一个随机数:生成一个1到100之间的随机数。
  2. 用户输入猜测:用户输入一个数字作为猜测。
  3. 循环判断:通过do-while循环,不断检查用户的猜测是否正确。如果用户猜错了,程序会提示他们数字太大还是太小,并要求重新猜测。这会持续到用户猜对为止。

5. 代码解析

int main() {
    int num = get_random_num(1, 100);  // 生成一个1到100之间的随机数
    cout << num << endl;  // 输出随机数(调试用,可删除)
    int guess_num;

    do {
        cout << "请输入一个猜测的数字:" << endl;
        cin >> guess_num;  // 用户输入猜测的数字

        if (guess_num > num) {
            cout << "你猜的大了" << endl;
        } else if (guess_num < num) {
            cout << "你猜的小了" << endl;
        } else {
            cout << "恭喜你,猜对了!";  // 猜对了,循环结束
        }
    } while (guess_num != num);  // 判断条件,如果猜错了,继续循环

    return 0;
}

6. 结果解释

输出如下所示:

D:\CLion_code\cmake-build-debug\CLion_code.exe
29
请输入一个猜测的数字:
29
恭喜你,猜对了!
Process finished with exit code 0

这个结果显示程序首先生成了随机数29。当用户第一次猜测的数字为29时,程序立即输出“恭喜你,猜对了!”,然后结束程序。由于do-while循环的特性,无论用户猜测是否正确,循环体都会至少执行一次,这在用户必须进行至少一次输入的场景下非常有用。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神笔馬良

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值