C编程从入门到实践
上QQ阅读APP看书,第一时间看更新

7.3.6 死循环/退出程序

前面介绍了在C语言中常用的循环语句,在讲解过程中提到了死循环。下面将简要介绍C语言中死循环的基本知识,并顺便介绍退出函数exit的基本用法。

1.死循环

死循环是指没有外来条件的干扰,这个循环语句将永远执行下去。例如下面就是一个死循环。

    while(10{
        循环体
    }

上述循环表达式的值总为真,并且程序无法改变条件,因为程序不会改变自身值,所以永远不会停止。

在实际应用中,死循环没有任何意义。前面讲解的break语句可以在需要时立刻终止,这样就可以利用死循环来实现需要某些重复功能,在完成后即可使用break来终止。看下面的代码。

    #include <stdio.h>
    int main(void){
        int n;
        while(1)
        {    //输出菜单
             puts("\n 1 for is A.");
             puts("Enter 2 is B.");
             puts("Enter 3 is C.");
             puts("Enter 4 is D.");
             puts("Enter 5 to is program.");
             scanf("%d", &n);                              //接收用户输入的数据
             if(n==1)                                      //若该数为1则输出执行任务A的消息
                puts("is A.");
             else if(n==2)                                 //若该数为2则输出执行任务B的消息
                puts("is B.");
             else if(n==3)                                 //若该数为3则输出执行任务C的消息
                puts("is C.");
             else if(n==4)                                 //若该数为4则输出执行任务D的消息
                puts("is D.");
             else if(n==5)                                 //若该数为5则退出循环
                {puts("Exit! "); break; }
             else                                          //若为其他数则输出错误消息
                  puts("Error! ");
        }
    }

上述代码通过死循环创建了一个列表选项供用户选择1、2、3、4等数字,选择后输出不同的提示,并继续死循环;当用户输入5后,则输出“exit”的提示,并使用break终止循环,退出系统。

从上述代码中可以得出一个结论:合理利用死循环也可以方便地解决现实项目问题。

2.退出程序

在C语言中,程序执行到main函数右边的花括号“}”后,程序将结束。实际上,在main函数结束时,程序会隐式地调用退出函数exit。

函数exit的功能是退出当前的执行程序,并将控制权返还给操作系统。函数exit会接受一个整型参数,并将其返回给操作系统,提示程序是正常终止还是异常终止。函数exit的使用格式如下所示。

    void exit(int status);

其中,“status”表示退出状态,一般用0表示正常退出,非零则表示不退出。

函数exit中的参数是程序退出时返回给操作系统的退出码,这在自己的程序中很少用到。但把函数exit用在main函数内的时候,不管main函数是否定义成void返回值都是有效的,并且exit不需要考虑类型,exit(1)等价于return。看下面的代码。

    #include <iostream>
    #include <string>
    using namespace std;
    int main(void) {
      exit (1);                                  //等价于return (1);
    }