• C语言如何判定循环结束和提前结束?


    一、问题

            在程序中,通常会⽤到循环结构反复地执⾏某⼀语句,但是不能⽆限地执⾏下去,否则会出现死循环,程序⽆法终⽌。那么,如何判定循环结束和提前结束呢?

    二、解答

    1.问题分析

            ⼀般情况下,判断循环结束可以由循环条件进⾏判断,循环语句都有判断循环结束的表达式,如 while 语句中 while(x>10 && x<50)中的条件表达式 x>10 && x<50;再如,for(i=1;i<10;i++)中条件表达式 10,当不满⾜条件表达式时就会结束循环,或者使⽤ break 语句,当程序执⾏到 break 语句时,跳出循环。例如:

    1. #include
    2. int main()
    3. {
    4. int a = 0, n;
    5. printf("Enter n:\n");
    6. scanf("%d", &n);
    7. while (1)
    8. {
    9. a++;
    10. n--;
    11. printf("%d\n", a * a);
    12. if (n == 0)
    13. break;
    14. }
    15. return 0;
    16. }

            输⼊⼀个n值,当n值⾃减到0或者n的值为0时,则会执⾏ break 语句,跳出循环。

    2.问题解答

            判断循环是正常结束还是提前结束,通常是在循环语句的后⾯再⽤⼀个或多个判断语句,检查循环变量的取值。如果循环条件由多个循环变量构成,则可以对各个变量分别进⾏判断。

            下⾯通过⼀个例⼦来说明循环判断结束的条件,代码如下。

    1. #include
    2. int main()
    3. {
    4. int i, a;
    5. printf("Please input:\n");
    6. scanf("%d", &a);
    7. for (i = 2; i < a; i++)
    8. {
    9. if (a % i == 0)
    10. {
    11. break;
    12. }
    13. if (i == a)
    14. {
    15. printf("素数")
    16. }
    17. else
    18. {
    19. printf("不是素数")
    20. }
    21. }
    22. }

            上⾯的代码⽤于判断⼀个数是否为素数。程序中的循环语句正常结束是当i⼤于a的时候,但是当a不能被i整除时,循环就会提前结束,故在循环语句后⾯添加⼀条判断语句,以提前结束循环。

    三、总结

            在程序中,⼀个完整的循环包括三部分,即循环的⼊口、循环体和循环的出口。循环若没有结束的条件便成为⽆限循环,即死循环,程序⽆法终⽌。除⾮某些特定环境需要⽤到⽆限循环,否则⽆限循环没有实际意义。

  • 相关阅读:
    JS sort排序
    【JS】获取 Headers 头部信息
    Vue项目中强制刷新页面的方法
    【面向就业的Linux基础】从入门到熟练,探索Linux的秘密(二)
    【Redis7】--4.事务、管道、发布和订阅
    1023 组个最小数
    LeetCode 热题 100 Day05
    Java 学习路线分享 maven 是什么?
    永久关机windows系统自动更新
    Android_三MSM8953_android10_移植nmap
  • 原文地址:https://blog.csdn.net/W_Fe5/article/details/136576497