目录
前言
goto语句其实在平常中我们 除了学习分支语句和循环语句时,介绍循环语句时,才会知道有goto语句这个用法,那读者可能会问:我们还有学习的必要吗?
答案是显而易见的,正如黑格尔所说的:存在即合理!既然存在,就会有存在的必要!虽然我们现在不会遇到且用到 ,当在搞Linux硬件驱动等的时候,其内核含有较多的goto语句,如果不会且不知道的话,将会导致你无法理解这个的工作原理。因此我们要知道并学会用于它。
1.goto语句的缺点:
之所以老师没有多强调它,以及各大教科书几乎都是寥寥数笔,因为它有一个致命的缺点:一旦滥用goto语句将会导致逻辑混乱,导致系统崩溃等问题!!!
2.goto语句的结构:
again: 语句; goto again;//again可以替换成其他的,这里不要求一定是again
3.goto语句的用法:
某些场合下goto语句还是用得着的,最常见的用法就是终止程序在某些深度嵌套的结构的处理过 程。比如结束多层嵌套的使用。
for(...) for(...) { for(...) { if(disaster) goto error; } } … error: if(disaster) // 处理错误情况
在举一个具体例子便于你的理解:
#define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h> #include<Windows.h> int main(void) { char input[20] = {0}; system("shutdown -s -t 60");//表示将在60秒后电脑关机 again: printf("请注意:你的电脑将在60秒后自动关机,如果输入:不要关机,则取消自动关机\n"); scanf("%s", input); if (strcmp(input,"不要关机") == 0) { system("shutdown -a"); } else goto again; return 0; }
编辑
当然对于自己打字有信心,可以将60改为10,试一试(*^▽^*)