久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      C語言入門之循環(huán)結(jié)構(gòu)

         循環(huán)結(jié)構(gòu)是程序中一種很重要的結(jié)構(gòu)。其特點是, 在給定條件成立時,反復(fù)執(zhí)行某程序段,直到條件不成立為止。 給定的條件稱為循環(huán)條件,反復(fù)執(zhí)行的程序段稱為循環(huán)體。 C語言提供了多種循環(huán)語句,可以組成各種不同形式的循環(huán)結(jié)構(gòu)。

         while語句

         while語句的一般形式為: while(表達式)語句; 其中表達式是循環(huán)條件,語句為循環(huán)體。

         while語句的語義是:計算表達式的值,當值為真(非0)時, 執(zhí)行循環(huán)體語句。其執(zhí)行過程可用圖3—4表示。 統(tǒng)計從鍵盤輸入一行字符的個數(shù)。

      #include
      void main(){
      int n=0;
      printf(“input a string:n”);
      while(getchar()!=’n’) n++;
      printf(“%d”,n);
      } int n=0;
      printf(“input a string:n”);
      while(getchar()!=’n’)
      n++;
      printf(“%d”,n);

         本例程序中的循環(huán)條件為getchar()!=’n’,其意義是, 只要從鍵盤輸入的字符不是回車就繼續(xù)循環(huán)。循環(huán)體n++完成對輸入字符個數(shù)計數(shù)。從而程序?qū)崿F(xiàn)了對輸入一行字符的字符個數(shù)計數(shù)。

         使用while語句應(yīng)注意以下幾點:

         1.while語句中的表達式一般是關(guān)系表達或邏輯表達式,只要表達式的值為真(非0)即可繼續(xù)循環(huán)。

      void main(){
        int a=0,n;
        printf(“n input n: “);
        scanf(“%d”,&n);
        while (n–)
        printf(“%d “,a++*2);
      } int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      while (n–)
      printf(“%d “,a++*2);

         本例程序?qū)?zhí)行n次循環(huán),每執(zhí)行一次,n值減1。循環(huán)體輸出表達式a++*2的值。該表達式等效于(a*2;a++)

         2.循環(huán)體如包括有一個以上的語句,則必須用{}括起來, 組成復(fù)合語句。

         3.應(yīng)注意循環(huán)條件的選擇以避免死循環(huán)。

      void main(){
        int a,n=0;
        while(a=5)
         printf(“%d “,n++);
      } int a,n=0;
      while(a=5)
      printf(“%d “,n++);

         本例中while語句的循環(huán)條件為賦值表達式a=5, 因此該表達式的值永遠為真,而循環(huán)體中又沒有其它中止循環(huán)的手段, 因此該循環(huán)將無休止地進行下去,形成死循環(huán)。4.允許while語句的循環(huán)體又是while語句,從而形成雙重循環(huán)。

         do-while語句

         do-while語句的一般形式為:

      do
        語句;
      while(表達式);

         其中語句是循環(huán)體,表達式是循環(huán)條件。

         do-while語句的語義是:

         先執(zhí)行循環(huán)體語句一次, 再判別表達式的值,若為真(非0)則繼續(xù)循環(huán),否則終止循環(huán)。

         do-while語句和while語句的區(qū)別在于do-while是先執(zhí)行后判斷,因此do-while至少要執(zhí)行一次循環(huán)體。而while是先判斷后執(zhí)行,如果條件不滿足,則一次循環(huán)體語句也不執(zhí)行。

         while語句和do-while語句一般都可以相互改寫。

      void main(){
        int a=0,n;
        printf(“n input n: “);
        scanf(“%d”,&n);
        do printf(“%d “,a++*2);
        while (–n);
      }
      int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      do printf(“%d “,a++*2);
      while (–n);

         在本例中,循環(huán)條件改為–n,否則將多執(zhí)行一次循環(huán)。這是由于先執(zhí)行后判斷而造成的。

         對于do-while語句還應(yīng)注意以下幾點:

         1.在if語句,while語句中, 表達式后面都不能加分號, 而在 do-while語句的表達式后面則必須加分號。

         2.do-while語句也可以組成多重循環(huán),而且也可以和while語句相互嵌套。

         3.在do和while之間的循環(huán)體由多個語句組成時,也必須用{}括起來組成一個復(fù)合語句。

         4.do-while和while語句相互替換時,要注意修改循環(huán)控制條件。

         for語句

         for語句是C語言所提供的功能更強,使用更廣泛的一種循環(huán)語句。其一般形式為:

      for(表達式1;表達式2;表達3)

         語句:

         表達式1 通常用來給循環(huán)變量賦初值,一般是賦值表達式。也允許在for語句外給循環(huán)變量賦初值,此時可以省略該表達式。

         表達式2 通常是循環(huán)條件,一般為關(guān)系表達式或邏輯表達式。

         表達式3 通??捎脕硇薷难h(huán)變量的值,一般是賦值語句。

         這三個表達式都可以是逗號表達式, 即每個表達式都可由多個表達式組成。三個表達式都是任選項,都可以省略。

         一般形式中的“語句”即為循環(huán)體語句。for語句的語義是:

         1.首先計算表達式1的值。

         2.再計算表達式2的值,若值為真(非0)則執(zhí)行循環(huán)體一次, 否則跳出循環(huán)。

         3.然后再計算表達式3的值,轉(zhuǎn)回第2步重復(fù)執(zhí)行。在整個for循環(huán)過程中,表達式1只計算一次,表達式2和表達式,3則可能計算多次。循環(huán)體可能多次執(zhí)行,也可能一次都不執(zhí)行。for 語句的執(zhí)行過程如圖所示。

      void main(){
      int n,s=0;
      for(n=1;n<=100;n++)
      s=s+n;
      printf(“s=%dn”,s);
      }

         用for語句計算s=1+2+3+…+99+100

      int n,s=0;
      for(n=1;n<=100;n++)
      s=s+n;
      printf(“s=%dn”,s);

         本例for語句中的表達式3為n++,實際上也是一種賦值語句,相當于n=n+1,以改變循環(huán)變量的值。

      void main(){
      int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      for(;n>0;a++,n–)
      printf(“%d “,a*2);
      }

       

         用for語句修改例題。從0開始,輸出n個連續(xù)的偶數(shù)。

      int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      for(;n>0;a++,n–)
      printf(“%d “,a*2);

         本例的for語句中,表達式1已省去,循環(huán)變量的初值在for語句之前由scanf語句取得,表達式3是一個逗號表達式,由a++,n– 兩個表達式組成。每循環(huán)一次a自增1,n自減1。a的變化使輸出的偶數(shù)遞增,n的變化控制循次數(shù)。

         在使用for語句中要注意以下幾點

         1.for語句中的各表達式都可省略,但分號間隔符不能少。如:for(;表達式;表達式)省去了表達式1。for(表達式;;表達式)省去了表達式2。

        for(表達式;表達式;)省去了表達式3。for(;;)省去了全部表達式。

         2.在循環(huán)變量已賦初值時,可省去表達式1,如例3.27即屬于這種情形。如省去表達式2或表達式3則將造成無限循環(huán), 這時應(yīng)在循環(huán)體內(nèi)設(shè)法結(jié)束循環(huán)。例題即屬于此情況。

      void main(){
      int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      for(;n>0;)
      { a++;n–;
        printf(“%d “,a*2);
      }
      } int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      for(;n>0;)
      { a++;n–;
      printf(“%d “,a*2);
      }

         本例中省略了表達式1和表達式3,由循環(huán)體內(nèi)的n–語句進行循環(huán)變量n的遞減,以控制循環(huán)次數(shù)。

      void main(){
      int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      for(;;){
      a++;n–;
      printf(“%d “,a*2);
      if(n==0)break;
      }
      }
      int a=0,n;
      printf(“n input n: “);
      scanf(“%d”,&n);
      for(;;){
      a++;n–;
      printf(“%d “,a*2);
      if(n==0)break;
      }

         本例中for語句的表達式全部省去。由循環(huán)體中的語句實現(xiàn)循環(huán)變量的遞減和循環(huán)條件的判斷。當n值為0時,由break語句中止循環(huán),轉(zhuǎn)去執(zhí)行for以后的程序。在此情況下,for語句已等效于while( 1)語句。如在循環(huán)體中沒有相應(yīng)的控制手段,則造成死循環(huán)。

         3.循環(huán)體可以是空語句。

      #include”stdio.h”
      void main(){
        int n=0;
        printf(“input a string:n”);
        for(;getchar()!=’n’;n++);
         printf(“%d”,n);
      }

         本例中,省去了for語句的表達式1,表達式3也不是用來修改循環(huán)變量,而是用作輸入字符的計數(shù)。這樣, 就把本應(yīng)在循環(huán)體中完成的計數(shù)放在表達式中完成了。因此循環(huán)體是空語句。應(yīng)注意的是,空語句后的分號不可少,如缺少此分號,則把后面的printf 語句當成循環(huán)體來執(zhí)行。反過來說,如循環(huán)體不為空語句時, 決不能在表達式的括號后加分號, 這樣又會認為循環(huán)體是空語句而不能反復(fù)執(zhí)行。這些都是編程中常見的錯誤,要十分注意。

         4.for語句也可與while,do-while語句相互嵌套,構(gòu)成多重循環(huán)。以下形成都合法的嵌套。

      (1)for(){…
         while()
          {…}
         …
           }
      (2)do{
          …
         for()
          {…}
         …
         }while();
      (3)while(){
             …
             for()
              {…}
             …
            }
      (4)for(){
           …
           for(){
           …
            }
           }
      void main(){
      int i,j,k;
      for(i=1;i<=3;i++)
      {
        for(j=1;j<=3-i+5;j++)
         printf(” “);
         for(k=1;k<=2*i-1+5;k++)
         {
          if(k<=5) printf(” “);
          else printf(“*”);
         }
         printf(“n”);
        }
      }

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號