站長資訊網
        最全最豐富的資訊網站

        C語言入門之轉移語句

        程序中的語句通??偸前错樞蚍较?, 或按語句功能所定義的方向執行的。如果需要改變程序的正常流向, 可以使用本小節介紹的轉移語句。在C語言中提供了4種轉移語句:

           goto,break, continue和return。

           其中的return語句只能出現在被調函數中, 用于返回主調函數,我們將在函數一章中具體介紹。 本小節介紹前三種轉移語句。

           1.goto語句

           goto語句也稱為無條件轉移語句,其一般格式如下: goto 語句標號; 其中語句標號是按標識符規定書寫的符號, 放在某一語句行的
        前面,標號后加冒號(:)。語句標號起標識語句的作用,與goto 語句配合使用。

           如: label: i++;
             loop: while(x<7);

           C語言不限制程序中使用標號的次數,但各標號不得重名。goto語句的語義是改變程序流向, 轉去執行語句標號所標識的語句。

           goto語句通常與條件語句配合使用??捎脕韺崿F條件轉移, 構成循環,跳出循環體等功能。

           但是,在結構化程序設計中一般不主張使用goto語句, 以免造成程序流程的混亂,使理解和調試程序都產生困難。

           統計從鍵盤輸入一行字符的個數。

        #include”stdio.h”
        void main(){
          int n=0;
          printf(“input a stringn”);
          loop: if(getchar()!=’n’)
          {
           n++;
           goto loop;
          }
          printf(“%d”,n);
        } int n=0;
        printf(“input a stringn”);
        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 charactern”);
            break;
           }b=a;
          }
        }

           檢查輸入的一行中有無相鄰兩字符相同。

        char a,b;
        printf(“input a string:n”);
        b=getchar();
        while((a=getchar())!=’n’){
          if(a==b){
           printf(“same charactern”);
           break;
          }b=a;
        }

           本例程序中,把第一個讀入的字符送入b。然后進入循環,把下一字符讀入a,比較a,b是否相等,若相等則輸出提示串并中止循環,若不相等則把a中的字符賦予b,輸入下一次循環。

           輸出100以內的素數。素數是只能被1 和本身整除的數??捎酶F舉法來判斷一個數是否是素數。

        void main(){
          int n,i;
          for(n=2;n<=100;n++){
           for(i=2;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
            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
            if(n%i==0) break;
            if(i>=k) printf(“t%2d”,n);
          }
        }

        贊(0)
        分享到: 更多 (0)
        網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
        主站蜘蛛池模板: 92国产精品午夜福利| 日本精品久久久中文字幕| 精品国产乱码久久久久久郑州公司| 久久国产精品成人免费| 亚洲婷婷国产精品电影人久久| 欧美精品免费线视频观看视频 | 国产精品视频一区二区三区无码| 国产精品色视频ⅹxxx| 91精品国产高清久久久久久io| 亚洲国产一成人久久精品| 久久久久久噜噜精品免费直播| 久久se精品一区二区| 国产午夜精品久久久久免费视| 亚洲国产一成人久久精品| 亚洲国产精品无码久久青草| 国产精品偷伦视频免费观看了| 亚洲国产精品成| 国产精品久久波多野结衣| 热re99久久精品国99热| 亚洲精品A在线观看| 国产精品久久久久乳精品爆| 国产日韩一区在线精品欧美玲| 国产精品扒开腿做爽爽爽视频| 日韩精品无码一区二区三区免费 | 国产一区二区三精品久久久无广告| 久久精品国产影库免费看| 97r久久精品国产99国产精| 久久精品国产清高在天天线| 伊人精品久久久久7777| 四虎永久在线精品国产馆V视影院| 精品久久久久久无码人妻蜜桃| 国产精品成人久久久久久久| 97久视频精品视频在线老司机| 久久亚洲精品中文字幕三区| 久久线看观看精品香蕉国产| 日本欧美韩国日本精品| 四虎成人精品免费影院| 亚洲愉拍自拍欧美精品| 国产99久久久国产精品~~牛| 97视频在线精品国自产拍| 国产精品网址在线观看你懂的|