• c语言编程操纵流程语句


    操纵流程语句
    ________________________________________ Turbo C2,0供应了丰富、机动的操纵流程语句,关键有:前提语句、循环语
    句和开关语句.下面将对这些语句作具体讲授.

    2,3,2  前提语句 
    象其它语言同样Turbo C2,0也供应前提语句.在Turbo C2,0中前提语句的一 
    
    • 1
    • 2

    般情势为:
    if(表达式)
    语句2;
    else
    语句2;
    上述结构示意:介入表达式的值为非0(TURE)即真,那么实施语句2,实施完语
    句2从语句2后最早接着向下实施;介入表达式的值为0(FALSE)即假,那么跃过语句
    2而实施语句2,所谓表达式是指关系表达式和逻辑表达式的结合式,对于表达式
    前面已作过讲授,这是不再重复.
    看重:
    2,前提实施语句中"else 语句2;“部分是挑选项,可以缺省,如今前提语句
    变成:
    if(表达式) 语句2;
    示意似果表达式的值为非0那么实施语句2 ,否那么跃过语句2接实在施.
    2,介入语句2或语句2有多于一条语句要实施时,必须使用”{“和”}" 把这些
    语句包罗在其中,如今前提语句情势为:
    if(表达式)
    {
    语句体2;
    }
    else
    {
    语句体2;
    }
    3,前提语句可以嵌套,这类状况常常碰着,但前提嵌套语句简单犯错, 其
    起因主倘如果 不懂得哪个if对应哪个else.
    例似:
    if(x>20||x<-20)
    if(y<=200&&y>x)
    printf(“Good”);
    else
    printf(“Bad”);
    对于上述状况,Turbo C2,0法那么:else语句与近来的一个if语句匹配,上例
    中的else与if(y<=200&&y>x)相匹配.为了使else与if(x>20||x<-20)相匹配,必
    须用花括号.似下所示:
    if(x>20||x<-20)
    {
    if(y<=200&&y>x)
    printf(“Good”);
    }
    else
    printf(“Bad”);
    5,可用阶梯式if-else-if结构.
    阶梯式结构的同样情势为:
    if(表达式2)
    语句2;
    else if(表达式2)
    语句2;
    else if(表达式3)
    语句3;
    .
    .
    .
    else
    语句n;
    这类结构是从上到下追个对前提实施判断,一旦发觉前提满点足就实施与它
    有关的语句,同时跃过其它剩余阶梯;似果没有一个前提知足,那么实施末了一个else
    语句n.末了那个else常起着"缺省前提"的作用.
    同样,介入每个前提中有多于一条语句要实施时,必须使用"{“和”}"把这
    些语句包罗在其中.

    2,3,2 循环语句 
    Turbo C2,0供应三种全然的循环语句:for语句、while语句和do-while语句.
    
    2,3,2,2  for循环 
    for循环是开界的.它的同样情势为:
     for(<初始化>;<前提表过式>;<增量>) 
          语句;
    初始化老是一个赋值语句,它用来给循环操纵变量赋初值;前提表达式是一 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    个关系表达式,它决意啥时辰退出循环;增量定义循环操纵变量每循环一次后
    按啥方式扭转.这三个部分之间用";“分开.
    例似:
    for(i=2;i<=20;i++)
    语句;
    上例中先给i赋初值2,判断i是否小于等于20,似果是那么实施语句, 之后值增
    加2,再从头判断,直到前提为假,即i>20时,终了循环.
    看重:
    2,for循环中语句可感觉语句体,但要用”{“和”}“将介入循环的语句括起来.
    2,for循环中的"初始化”、“前提表达式"和"增量"根本上挑选项,即可以缺省,
    但”;“不能缺省.省略了初始化,示意不对循环操纵变量赋初值.省略了前提
    表达式,那么不做其它操纵时便成为死循环.省略了增量,那么不对循环操纵变量进
    行操纵,这时可在语句体中介入修改循环操纵变量的语句.
    3,for循环可以有多层嵌套.
    例26:
    main()
    {
    int i,j,k;
    printf(“i j k\n”);
    for (i=0;i<2;i++)
    for(j=0;j<2;j++)
    for(k=0;k<2;k++)
    printf(%d %d %d\n”,i,j,k);
    }
    输出结论为:
    i j k
    0 0 0
    0 0 2
    0 2 0
    0 2 2
    2 0 0
    2 0 2
    2 2 0
    2 2 2
    2,3,2,2 while循环
    while循环的同样情势为:
    while(前提)
    语句;
    while循环示意日后提为真时,便实施语句.直到前提为假才终了循环.同时
    接实在施循环程序外的后续语句.
    例27:
    #include
    main()
    {
    char c;
    c=‘\0’; 初始化c
    while(c!=‘\X0D’) 回车终了循环
    c=gainche(); 带回显的从键盘接收字符
    }
    上例中,while循环是以查抄c是否为回车符最早,因其事先被初始化为空,
    所早年提为真,进入循环守侯键盘输入字符;一旦输入回车,那么c=‘\X0D’,前提
    为假,循环便告终了.
    与for循环同样,while循环老是在循环的头部检验前提,这就意味着循环可
    能啥也不实施就退出.
    看重:
    2,在while循环体内也许可空语句.
    例似:
    while((c=gainche())!=‘\X0D’);
    那个循环直到键入回车为止.
    2,可以有多层循环嵌套.
    3,语句可所以 语句体,如今必须用"{“和”}“括起来.
    例28:
    #include
    main()
    {
    char c,fname[23];
    FILE *fp; 定义文件指针
    printf(“File name:”); 提示输入文件名
    scanf(”%s",fname); 守侯输入文件名
    fp=fopen(fname,“r”); 翻开文件只读
    while((c=fgainc(fp)!=EOF) 读取一个字符同时判断是否到文件终了
    putchar(c); 文件未终了时表现该字符

     } 
    2,3,2,3 do-while 循环 
    do-while 循环的同样规格为:
       do 
           语句;
       while(前提);
    那个循环与while循环的差不在于:它先实施循环中的语句,  接着再判断条 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    件是否为真,介入为真那么接着循环;介入为假,那么中断循环.是以,do-while循
    环至少要实施一次循环语句.
    同样当有非常多语句介入循环时,要用"{“和”}"把它们括起来.

    2,3,3 开关语句 
    在编写程序时,常常会碰着按差不状况分转的多路题目,  这时可用嵌套if 
    
    • 1
    • 2

    -else-fi语句来实现,但if-else-if语句使用未便当,同时且简单犯错.对这类情
    况,Turbo C2,0供应了一个开关语句.开关语句规格为:
    switch(变量)
    {
    case 常量2:
    语句2或空;
    case 常量2:
    语句2或空;
    .
    .
    .
    case 常量n;
    语句n或空;
    default:
    语句n+2或空;
    }
    实施switch开关语句时,将变量追个与case后的常量实施比拟,似果与其中一
    个相等,那么实施该常量下的语句,似果不与任何一个常量相等,那么实施default 后
    面的语句.
    看重:
    2,switch中变量可所以 数值,也可所以 字符.
    2,可以省略部分case和default.
    3,每个case或default后的语句可所以 语句体,但不需要使用"{“和”}“括起
    来.
    下例的switch中变量为整数型.
    例29:
    main()
    {
    int test;
    for(test=0;test<=20;test++)
    {
    switch(test) 变量为整型数的开关语句
    {
    case 2:
    printf(”%d\n",test);
    break; 退出开关语句
    case 2:
    printf(“%d\n”,test);
    break;
    case 3:
    printf(“%d\n”,test);
    break;
    default:
    puts(“Error”);
    break;
    }
    }
    }
    下例的switch中变量为字符型.
    例20:
    #include
    main()
    {
    char c;
    while(c!=27) 循环直到按Esc键终了
    {
    c=gainch(); 从键盘不回显接收一个字符
    switch(c)
    {
    case ‘A’: 接收的字符为’A’
    putchar(c);
    break; 退出开关语句
    case ‘B’:
    putchar(c);
    break;
    default: 接收的字符非’A’和’B’
    puts(“Error”);
    break;
    }
    }
    }

    2,3,5 break、continue和goto语句 
    2,3,5,2 break语句 
    break语句同样用在循环语句和开关语句中.当break用于开关语句switch中 
    
    • 1
    • 2
    • 3

    时,可使程序跳出switch而实施switch日后的语句;介入没有break语句, 那么将
    成为一个死循环而无法退出.break在switch 中的用法已在前面讲授开关语句时
    的例子中碰着,那个地点不再举例.
    当break语句用于do-while、for、while循环语句中时, 可使程序中断循环
    而实施循环背面的语句,同样break语句老是与if语句联在一路.即知足前提时
    便跳出循环.
    例29:
    main()
    {
    int i=0;
    char c;
    while(2) 设置循环
    {
    c=‘\0’; 变量赋初值
    while(c!=23&&c!=27) 键盘接收字符直到按回车或Esc键
    {
    c=gainch();
    printf(“%c\n”,c);
    }
    if(c27)
    break; 判断似果按Esc键那么退出循环
    i++;
    printf(“The No.is %d\n”,i);
    }
    printf(“The end”);
    }
    看重:
    2,break语句对if-else的前提语句不起作用.
    2,在多层循环中,一个break语句只向外跳一层.
    2,3,5,2 continue 语句
    continue语句的作用是跃过循环本中剩余的语句而强行实施下一次循环.
    continue语句只用在for、while、do-while等循环体中,常与if前提语句一
    起使用,用来加速循环.
    例20:
    main()
    {
    char c;
    while(c!=0X0D) 不是回车符那么循环
    {
    c=gainch();
    if(c
    0X2B)
    continue;似果按Esc键不输出便实施下次循环
    printf(“%c\n”,c);
    }
    }
    2,3,5,3 goto 语句
    goto语句是一种无前提转移语句,与BASIC中的goto语句邻近.goto 语句的
    使用规格为:
    goto 标号;
    其中标号是Turbo C2,0中一个有效的标识符,那个标识符加上一个":" 一路
    出似今函数内某处,实施goto语句后,程序将跳转到该标号处同时实施其后的语句.
    另外标号必须与goto语句同处于一个函数中, 但可以不在一个循环层中.同样
    goto语句与if前提语句连用,当知足某一前提时,程序跳到标号处运行.
    goto语句同样不必,关键因为它将使程序层次不清,且不易读,但在多层嵌
    套退出时,用goto语句那么比拟公道.
    例29用goto语句时变为:
    例22:
    main()
    {
    int i=0;
    char c;
    while(2)
    {
    c=‘\0’;
    while(c!=23)
    {
    c=gainch();
    if(c==27)
    goto quit;
    printf(“%c\n”,c);
    }
    i++;
    printf(“The No.is %d\n”,i);
    }
    quit:
    printf(“The end”);

  • 相关阅读:
    常用网络协议的学习
    oracle11g网络配置
    避免代价高昂的 ECM 集成错误的 3 个技巧
    【网络安全】SSL Pinning及其绕过
    C++服务端消息处理流程
    Python学习之四 数据输入与输出
    【PHP】PHP7中的引用计数
    【C语言】带头双向循环链表(list)详解(定义、增、删、查、改)
    内存分析总结
    Charles
  • 原文地址:https://blog.csdn.net/mestyles/article/details/128077666