循环与goto语句 友情链接:C语言专栏
本篇旨在完成上篇文章未写完的一部分: 循环的实现方式与goto语句相互替代(例:一个关机程序)。
实现了一个有趣的小功能:程序启动后会设置计算机在 60 秒后关机,然后提示用户输入 “我是猪”,如果用户输入的内容与 “我是猪” 完全匹配,就会取消关机操作;若输入不匹配,则会一直循环提示用户输入,直到输入正确内容为止。
代码如下:
int main()
{
char input[20] = { 0 };
system("shutdown -s -t 60");
//system函数用于执行系统命令。这里执行的命令是shutdown -s -t 60,其中-s表示关机操作,-t 60表示在 60 秒后执行关机。
while (1)
{
printf("请注意,你的电脑在60秒内关机,如果输入:我是猪,就取消关机\n");
scanf("%s", input);
if (strcmp(input, "我是猪") == 0)//strcmp函数用于比较两个字符串是否相等。如果input数组中的字符串与 “我是猪” 完全相同,strcmp函数返回 0,此时条件成立,执行if语句块中的代码
{
system("shutdown -a");
//如果用户输入的内容与 “我是猪” 相等,执行shutdown -a命令,该命令用于取消之前设置的关机操作
break;
}
}
return 0;
}代码如下:
int main()
{
char input[20] = { 0 };
system("shutdown -s -t 60");
again:
//这是一个标签,用于配合goto语句实现代码的跳转。在 C 语言中,标签是一个标识符,后面跟着一个冒号:,可以作为goto语句的目标位置。
printf("请注意,你的电脑在60秒内关机,如果输入:我是猪,就取消关机\n");
scanf("%s", input);
if (strcmp(input, "我是猪") == 0)
{
system("shutdown -a");
}
else
{
goto again;//goto语句用于无条件跳转到指定的标签位置。这里跳转到again标签处,重新提示用户输入,形成一个循环。
}
return 0;
}注:goto语句的使用:goto语句虽然可以实现代码的跳转,但过度使用会使代码的逻辑变得复杂,难以理解和维护,应尽量避免使用。可以使用while或for循环来替代goto语句实现相同的功能。
适当娱乐!