do…while()循环,do语句的语法:
do
循环语句;
while(表达式);
do
循环语句;
while(表达式);
例:
int main()
{
int i = 1;
do
{
printf("%d ", i);
i++;
} while (i <= 10); //最后的分号;不可缺少
return 0;
}
do…while中的break和continue:
int main()
{
int i = 1;
do
{
if (i == 5)
break; //break是跳出循环
printf("%d ", i);
i++;
} while (i <= 10);
return 0;
}
程序结果是:1234之后死循环(continue同样)
关于do..while循环的一个游戏制作:
写一个猜数字游戏,(1)自动产生一个1-100的随机数 (2)猜数字,猜对了“恭喜你,游戏结束”;猜错了会告诉猜大了猜小了(3)游戏可以一直玩,除非退出游戏。
#include#include #include void menu() { printf(" 1.play n"); printf(" 0.exit n"); } void game() { //猜数字游戏的实现:先生成随机数-->猜数字。rand函数返回了一个0-32767之间的数字,但是不够随机。 //所以添加srand(具体查看MSDN里的概念) int ret = rand() %100+1; //%100的余数是0-99,然后+1.范围就是1-100 int guess = 0; //猜数字 while (1) { printf("猜数字"); scanf_s("%d", &guess); if (guess < ret) { printf("猜小了n"); } else if (guess > ret) { printf("猜大了n"); } else { printf("猜对了n"); break; } } } int main() { int input =0; //时间--time时间戳:相较于计算机的起始时间之间的差值换算成以秒为单位的一个数字 srand((unsigned int)time(NULL)); //不需要使用time函数里的参数,所以参数填null do { menu(); //打印菜单 printf("请选择"); scanf_s("%d", &input); switch (input) { case 1: game(); break; case 0: printf("退出游戏n"); break; default: printf("选择错误,重新选择n"); break; } } while (input); return 0; } //假定rand取得是1,3,5,7,9的随机值,那srand可以把初始值改成3开始,就会变成3,7,9...... //srand只是输出了固定的随机数开始地址



