zoukankan      html  css  js  c++  java
  • C言语教程第三章: C言语步伐料理开端(8)

    转移语句

    步伐中的语句通常老是按次序标的目的, 或按语句遵从所定义的标的目的实行的。要是需求变化步伐的正常流向, 可以运用本小节引见的转移语句。在C言语中供给了4种转移语句:
    goto,break, continue和return。
    其中的return语句只能出目前被调函数中, 用于前去主调函数,我们把在函数一章中详细引见。 本小节引见前三种转移语句。

    1.goto语句

    goto语句也称为无前提转移语句,其一样伟大花样如下: goto 语句标号; 其中语句标号是按标识符划定书写的标记, 放在某一语句行的
    前面,标号后加冒号(:)。语句标号起标识语句的劝化,与goto 语句合营运用。
    如: label: i ;
    loop: while(x<7);
    C言语不限定步伐中运用标号的次数,但各标号不得重名。goto语句的语义是变化步伐流向, 转去实行语句标号所标识的语句。
    goto语句通常与前提语句合营运用。可用来完成前提转移, 构成轮回,跳出轮回体等遵从。
    但是,在结构化步伐料理中一样伟大不主张运用goto语句, 以免构成步伐流程的混乱,使熟悉探询和调试步伐都发生艰难。
    统计从键盘输出一行字符的个数。
    #include"stdio.h"
    void main(){
    int n=0;
    printf("input a string\n");
    loop: if(getchar()!='\n')
    { n ;
    goto loop;
    }
    printf("%d",n);
    }
    本例用if语句和goto语句构成轮回结构。当输出字符不为'\n'时即实行n 举行计数,然后转移至if语句轮回实行。直至输出字符为'\n'才停止轮回。

    break语句

    break语句只能用在switch 语句或轮回语句中, 其劝化是跳出switch语句或跳出本层轮回,转去实行前面的步伐。由于break语句的转移标的目的是相识的,以是不需求语句标号与之合营。break语句的一样伟大体式款式为: break; 上面例题中区分在switch语句和for语句中运用了break 语句作为跳转。运用break语句可以使轮回语句有多个出口,在一些场合下使编程愈加迅速、随意。

    continue语句

    continue语句只能用在轮回体中,其一样伟大花样是:
    continue;
    其语义是:终了本次轮回,即不再实行轮回体中continue 语句之后的语句,转入下一次轮回前提的判别与实行。应注重的是, 本语句只终了本层本次的轮回,并不跳出轮回。
    void main(){
    int n;
    for(n=7;n<=100;n )
    {
    if (n%7!=0)
    continue;
    printf("%d ",n);
    }
    }
    输出100以内能被7整除的数。
    int n;
    for(n=7;n<=100;n )
    {
    if (n%7!=0)
    continue;
    printf("%d ",n);
    }
    本例中,对7~100的每一个数举行测试,如该数不克不及被7整除,即模运算不为0,则由continus语句转去下一次轮回。只需模运算为0时,才干实行前面的printf语句,输出能被7整除的数。
    #include"stdio.h"
    void main(){
    char a,b;
    printf("input a string:\n");
    b=getchar();
    while((a=getchar())!='\n'){
    if(a==b){
    printf("same character\n");
    break;
    }b=a;
    }
    }
    反省输出的一行中有无相邻两字符不异。
    char a,b;
    printf("input a string:\n");
    b=getchar();
    while((a=getchar())!='\n'){
    if(a==b){
    printf("same character\n");
    break;
    }b=a;
    }
    本例步伐中,把第一个读入的字符送入b。然落伍入轮回,把下一字符读入a,比拟a,b能否相等,若相等则输出提示串并间断轮回,若不相等则把a中的字符赋予b,输出下一次轮回。
    输出100以内的素数。素数是只能被1 和自己整除的数。可用穷举法来判别一个数能否是素数。
    void main(){
    int n,i;
    for(n=2;n<=100;n ){
    for(i=2;i<n;i )
    if(n%i==0) break;
    if(i>=n) printf("\t%d",n);
    }
    } int n,i;
    for(n=2;n<=100;n ){
    for(i=2;i<n;i )
    if(n%i==0) break;
    if(i>=n) printf("\t%d",n);
    }
    本例步伐中,第一层轮回暗示对1~100这100个数逐一判别能否是素数,共轮回100次,在第二层轮回中则对数n用2~n-1逐一去除,若某次除尽则跳出该层轮回,分析不是素数。 要是在全部的数都是未除尽的环境下终了轮回,则为素数,此时有i>=n, 故可经此判别后输出素数。然后转入下一次大轮回。实践上,2以上的全部偶数均不是素数,因此可以使轮回变量的步长值改为2,即每次增加2,此外只需对数n用2~n去除就可判别该数能否素数。如许把大大增加轮回次数,增加步伐运转时分。
    #include"math.h"
    void main(){
    int n,i,k;
    for(n=2;n<=100;n =2){
    k=sqrt(n);
    for(i=2;i<k;i )
    if(n%i==0) break;
    if(i>=k) printf("\t-",n);
    }
    }


    版权声明: 原创作品,赞同转载,转载时请务必以超链接体式款式标明文章 原始来由 、作者信息和本声明。否则将穷究规律责任。

  • 相关阅读:
    C#判断是否运行在调试模式下
    [php] Interface abstract里面的私有方法 private method of interface and abstract class
    [html] Javascript warning and error of w3c
    [html] <a> and <input> can not click in IE6 when use png fixed IE6下png图片和png背景透明导致该区域的链接和按钮无效
    [Ubuntu] invalid environment block
    [Ubuntu] 分割与合并文件 Cut and mix the file
    [php] Treat an object like an array
    [eZ publish] How to add a element to an array.
    [html] PHP使用Google map web services来计算两点间的距离 Compute the distance between two place via Google map services in PHP
    [html] symbol of <b> and <strong>
  • 原文地址:https://www.cnblogs.com/zgqjymx/p/1975615.html
Copyright © 2011-2022 走看看