Bootstrap

C语言学习笔记:do..while循环、goto语句

dowhile()循环,do语句的语法:

do

   循环语句;

while(表达式);

例:

int main()

{

    int i = 1;

    do

    {

         printf("%d ", i);

         i++;

    } while (i <= 10);    //最后的分号;不可缺少

    return 0;

}

dowhile中的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<stdio.h>
#include<stdlib.h>
#include<time.h>

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只是输出了固定的随机数开始地址

goto语句:

goto语句:

例子:

#include<stdio.h>

int main()

{

flag:

    printf("hello");

    printf("yummy");

    goto flag;

    return 0;

}

Goto语句最常见的用法:终止程序在某些深度嵌套的结构的处理过程,例如一次跳出两层或多层循环。这种情况使用break试是达不到目的的。它只能从最内层循环退出到上一层的循环。goto语句只能在一个函数范围内跳转,不能跨函数。

例子2:

#include<stdio.h>

#include<string.h>

#include<stdlib.h>

//关机程序:只要运行起来,电脑就会在1分钟内关机,如果输入:我是美女,就取消关机

//电脑关机有一个关机命令提示符:shutdown -s -t 60

//-s是设置关机 -t设置时间关机 60是60s后关机

//shutdown -a就会取消关机(见附图)

//C语言提供了一个函数:system()--执行系统命令

int main()

{

    char input[20] = { 0 };     //存放输入的信息

    system("shutdown -s -t 60");         //system的头文件--stdlib.h

again:

    printf("你的电脑即将关机,输入我是美女终止这一过程。");

    scanf_s("%s", input);                   //%s:是接收字符串的。input字符名本身就是地址,所以不用再输入&取地址符号

    if (strcmp(input,"我是美女")==0)           //if (input == "我是美女")

    {                                 //注意:两个字符串比较不能使用==的,应该使用strcmp() 的头文件--string.h 即:string compare

         system("shutdown -a");

    }

    else

    {

         goto again;

    }

    return 0;

}


附图:

1.

 

 2.

 

3.输入shutsown -s -t 60 后:

 4.输入shutdown -a 后:

 

 


goto语句只能在一个函数范围内跳转,不能跨函数。

例:

 

;