• break和continue


    break 和 continue
      break用于循环,则用于终止循环
      break用于switch,则用于终止switch
      break不能直接用于if,除非if属于循环内部的一个子句。
      当有多层循环时,break只能终止距离它最近的循环
      当多层switch嵌套时,break只能终止距离它最近的switch

    continue 用于跳过本次循环余下的语句,转去判断是否需要执行下次循环

    例子:

    1.

    1 for(1; 2; 3)
    2 {
    3     A;
    4     B;
    5     continue;//如果执行该语句,则会执行语句3,C和D都会被跳过去,不会被执行
    6     C;
    7     D;
    8 }

    2.

    1 while (表达式)    //当把for循环转化成while语句时,语句3一定要在continue之前
    2 {
    3     A;
    4     B;
    5     continue;//如果执行该语句,则会执行表达式,C和D都会被跳过去,不会被执行
    6     C;
    7     D;
    8 }

    如: 

    1 char ch;
    2 while( (ch=getchar()) != '
    ')
    3   continue;

    详见scanf对用户非法输入的处理

    1. break不能直接用于if, 除非if属于循环内部的一个子句:

     1 # include <stdio.h>
     2 
     3 int main(void)
     4 {
     5     int i;
     6 /*
     7     switch (2)
     8     {
     9     case 2:
    10         printf("哈哈!
    ");
    11         break;  //OK, break可以用于switch
    12     }
    13 
    14 */
    15     
    16     for (i=0; i<3; ++i )
    17     {
    18         if (3 > 2)
    19             break;  //break虽然是if内部的语句,但break终止的是外部的for循环
    20         printf("嘿嘿!
    ");
    21     }
    22 
    23     return 0;
    24 }

    break用于多个for循环,只能终止离它最近的:

     1 # include <stdio.h>
     2 
     3 int main(void)
     4 {
     5     int i, j;
     6 
     7     for (i=0; i<3; ++i)
     8     {
     9         for (j=1; j<4; ++j)
    10             break;  //break只能终止距离它最近的循环
    11         printf("同志们好!
    ");
    12     }
    13 
    14     return 0;
    15 }

    switch + break的用法_电梯程序:

     1 # include <stdio.h>
     2 
     3 int main(void)
     4 {
     5     int val;
     6 
     7     printf("请输入您要进入的楼层: ");
     8     scanf("%d", &val);
     9 
    10     switch (val)
    11     {
    12     case 1:
    13         printf("1层开!
    ");
    14         break;
    15     case 2:
    16         printf("2层开!
    ");
    17         break;
    18     case 3:
    19         printf("3层开!
    ");
    20         break;
    21     default:
    22         printf("没有盖到这一层!
    ");
    23         break;
    24     }
    25 
    26     return 0;
    27 }

    多层switch嵌套与break的用法:

     1 /*
     2 时间:2015年2月7日20:06:10
     3 描述:测试break在多层switch中的用法
     4 功能:当多层switch嵌套时,break只能终止距离它最近的switch
     5 */
     6 # include <stdio.h>
     7 
     8 int main (void)
     9 {
    10     int x =1, y = 0, a = 0, b = 0;
    11 
    12     switch (x)
    13     {
    14     case 1 :
    15         switch (y)
    16         {
    17         case 0 :
    18             a++;
    19             break;        //break只能终止距离它最近的switch
    20         case 1 :
    21             b++;
    22             break;
    23         }
    24         b = 100;        //如果break终止内层switch,则b = 100,如果终止外层switch,则b = 0
    25         break;
    26     case 2 :
    27         a++;
    28         break;
    29     }
    30 
    31     printf("a = %d b = %d
    ", a, b);
    32 
    33 /*
    34     2015年2月7日20:11:15
    35     当有多层循环时,break只能终止距离它最近的循环
    36     break不能直接用于if,除非if属于循环内部的一个子句。
    37 如:if (3 > 2)
    38         break;        //错误
    39 */
    40     int i, j;
    41     for (i=0; i<3; i++)
    42     {
    43         for (j=0; j<3; j++)
    44         {
    45             if (3 > 2)
    46                 break;        //if是循环的子句,OK,break虽然是if的子句,但是终止的是内层for循环
    47             printf("终止if!
    ");//如果break终止if,则此句会输出
    48         }
    49         printf("终止最近的for循环!
    ");//break终止内层循环,此句会输出3次!
    50     }
    51     return 0;
    52 }
    53 /*
    54 在VC++6.0输出结果是:
    55 ----------------------------
    56 a = 1 b = 100
    57 终止最近的for循环!
    58 终止最近的for循环!
    59 终止最近的for循环!
    60 Press any key to continue
    61 ----------------------------
    62 */

    一元二次方程_do...while人机交互

     1 /*
     2 时间:2015年2月7日18:34:21
     3 描述:使用 do...while 人机交互连续计算一元二次方程的解 
     4 功能:
     5 */
     6 
     7 # include <stdio.h>
     8 # include <math.h>
     9 int main (void)
    10 {
    11     double a, b, c;
    12     double delta;
    13     double x1, x2;
    14     char ch;
    15     
    16     do
    17     {
    18         printf("请输入一元二次方程的3个系数:
    ");
    19         printf("a = ");
    20         scanf("%lf", &a);
    21         
    22         printf("b = ");
    23         scanf("%lf", &b);
    24         
    25         printf("c = ");
    26         scanf("%lf", &c);
    27         
    28         delta = b*b - 4*a*c;
    29         
    30         if (delta > 0)
    31         {
    32             x1 = (-b + sqrt(delta)) / (2*a);
    33             x2 = (-b - sqrt(delta)) / (2*a);
    34             printf("有两个解,x1 = %lf, x2 = %lf
    ", x1, x2);
    35         }
    36         else if (0 == delta)
    37         {
    38             x1 = (-b) / (2*a);
    39             printf("有唯一解:x1 = x2 = %lf
    ", x1);
    40         }
    41         else
    42             printf("无实数解!
    ");
    43         
    44         printf("是否需要继续(Y/N)?
    ");
    45         scanf(" %c", &ch);        //注意%c之前要有一个空格,原因略
    46     
    47     } while ('y'==ch || 'Y'==ch);
    48     
    49     return 0;
    50 }
    51 /*
    52 在VC++6.0输出结果是:
    53 ----------------------------
    54 请输入一元二次方程的3个系数:
    55 a = 1
    56 b = 2
    57 c = 1
    58 有唯一解:x1 = x2 = -1.000000
    59 是否需要继续(Y/N)?
    60 y
    61 请输入一元二次方程的3个系数:
    62 a = 1
    63 b = 5
    64 c = 6
    65 有两个解,x1 = -2.000000, x2 = -3.000000
    66 是否需要继续(Y/N)?
    67 Y
    68 请输入一元二次方程的3个系数:
    69 a = 4
    70 b = 1
    71 c = 4
    72 无实数解!
    73 是否需要继续(Y/N)?
    74 n
    75 Press any key to continue
    76 ----------------------------
    77 */
    http://www.cnblogs.com/moon1992/
  • 相关阅读:
    python爬虫之趟雷
    python附录-builtins.py模块str类源码(含str官方文档链接)
    python-基础学习篇(一)
    pycharm和webstorm永久激活方法
    计算机网络基础概述
    计算机基础
    B/S和C/S架构简单理解
    认识HTML中文本、图片、链接标签和路径
    结对开发
    全国疫情可视化地图 (一)
  • 原文地址:https://www.cnblogs.com/moon1992/p/4536593.html
Copyright © 2020-2023  润新知