C++ 循环结构之 While语句 和随机数的一些用法

本文介绍了C++中的while循环结构,强调了循环条件的重要性,以及如何避免死循环。同时,通过一个猜数游戏的例子展示了如何结合循环和rand()函数生成随机数,以及srand()函数设置随机数种子以确保每次运行程序得到不同的随机序列。玩家可以无限次猜测,直到猜中系统生成的随机数。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

作用:有条件地多次重复执行某一段代码

语法:

while (循环条件) {循环语句}

循环条件实际上是一个逻辑表达式.

当表达式的值为真时,开始执行循环语句中的代码.

全部执行完毕后再次判断表达式,若仍真,再从头执行循环语句中的代码.

直至表达式值为假,则不再执行后面的循环语句,并立即跳出循环.

所以写循环语句时必须注意,不要让表达式的值一直为真,防止程序陷入死循环.

若表达式的值一直为真,就需要在循环语句中写判断语句 ,用break; 或者 return 0;来跳出循环.

return 0; 会向表达式返回一个0值 ( 即布尔型的假 ), 从而终止循环.

循环语句常被用于执行某些多次重复的功能,如输出0~100的全部整数:

图中代码实际输出为0~59, 因为 i == 59 时,在输出和自增后,就直接跳出了循环.

#include <iostream>
using namespace std;
int main()
{
	int i = 0;
	
	while (i < 101)
	{
		cout << i << endl;
		i++;
		if (i == 60)
		{
			return 0;
		 }
	}
	return 0;

}

猜数游戏

可以结合循环语句和随机数生成, 做一个猜数字的游戏.

系统生成随机整数,玩家知道随机数的范围,但不知道数的具体值,允许无限次的猜测.

并且每次猜测后程序会告知玩家猜测的数字偏大还是偏小,直至玩家猜中为止.

随机数生成:

c++中的随机数rand()_c++随机数_fang0jun的博客-优快云博客

 rand()函数   

这个函数不需要参数就可以使用.

计算机提供随机数种子,在任意时间执行程序,随机数的序列都总是相同

并且序列具有周期性(但是周期很大.)

语法:

int num =  rand()% n + a ;

即生成从 a 到  ( n+a-1 )  的随机整数,包括 a 和  ( n+a-1 ).

srand()函数

若要每次产生的随机数序列都不一样,可以用 srand ( seed ) 函数.

随着种子(seed)的改变,每次生成的随机数都会不一样.

注意,这个函数只是指定种子,之后仍然需要通过rand()函数生成随机数.

语法:

srand ( (unsigned int)   time  (NULL) );

或者

srand (time(0));

某些教程和资料中要求,使用第一种方式时,需要包含<ctime>头文件.

使用第二种方式时,需要包含<time.h>头文件.

但经本人实际测试, Visual Studio Community 2022 不需要额外包含任何头文件就可以使用上述两种方法.

源代码:

#include <iostream>
using namespace std;
int main()
{
	int a = 0;
	int b = 0;
	srand((unsigned int)time(NULL));
	a = rand() % 100 + 1;
	
	while (1)
	{
		cout << "输入0退出游戏" << endl;
		cout << "请输入您猜测的数字: " << endl;
		cin >> b;

		if (b == 0)
		{
			break;
		}
		else if (b > a)
		{
			cout << "您的猜测偏大" << endl;
		}
		else if (b < a)
		{
			cout << "您的猜测偏小" << endl;
		}
		else
		{
			cout << "恭喜您猜中了!" << endl;
			cout << "随机数的值为:" << a << endl;
			break;
		}

	}
	return 0;

}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值