日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

學(xué)習(xí)C++ -> 循環(huán)語(yǔ)句與循環(huán)控制

系統(tǒng) 2698 0

 學(xué)習(xí)C++ -> 循環(huán)語(yǔ)句與循環(huán)控制  

    


 一、循環(huán)語(yǔ)句      
      當(dāng)程序中需要不斷的重復(fù)執(zhí)行某個(gè)動(dòng)作, 例如: 重復(fù)輸出1000行"Hello,world!", 如果自己寫(xiě)一千行      cout<<"Hello,world!";        , 就算復(fù)制粘貼也得一會(huì)時(shí)間, 這時(shí)循環(huán)語(yǔ)句就能派上大用場(chǎng)了。
    
 1. for循環(huán)      
     for循環(huán)使用的基本形式:  

  for        ( 初始化表達(dá)式; 條件表達(dá)式; 增量表達(dá)式 )

        語(yǔ)句;    
        //        循環(huán)體

 


     初始化是一個(gè)賦值語(yǔ)句, 它用來(lái)給循環(huán)控制變量賦初值; 條件表達(dá)式是一個(gè)關(guān)系表達(dá)式, 它決定什么時(shí)候退出循環(huán); 增量定義循環(huán)控制變量每循環(huán)一次后循環(huán)控制變量按什么方式變化。這三個(gè)部分之間用分號(hào)(;)分開(kāi)。
     
     例如:  

  int         i ;    
        for        ( i = 
      0        ; i < 
      10        ; i++       )

        cout        << i <<endl ;

 


     for循環(huán)語(yǔ)句首先計(jì)算初始化表達(dá)式, 即將循環(huán)控制變量i賦初始值0; 條件表達(dá)式 i < 10 ;表示當(dāng)i的值小于10的時(shí)候執(zhí)行      cout<< i <<endl ;        語(yǔ)句, 當(dāng)大于或等于(>=)10的時(shí)候就結(jié)束循環(huán);      i++        是告訴for循環(huán)循環(huán)控制變量沒(méi)循環(huán)一個(gè)循環(huán)控制變量i的值增加1, 然后繼續(xù)執(zhí)行循環(huán)體中的語(yǔ)句, 直到i的值大于或等于10時(shí)結(jié)束循環(huán)。
    
     注意:      
         1>. 循環(huán)體中如果有多條語(yǔ)句需要用大括號(hào){}括起來(lái)構(gòu)成一條符合語(yǔ)句;
         2>. for循環(huán)中的初始化表達(dá)式、條件表達(dá)式和增量表達(dá)式可以缺省, 但分號(hào)(;)不能缺省, 例如:  

  for         ( ; ; )        
      //        死循環(huán)        語(yǔ)句;            

        
        for         ( i = 
      1        ; ; i += 
      2         )    
      //        i每次加2, 循環(huán)不停止        語(yǔ)句;            

        
        for         ( j = 
      5        ; ; )    
      //        j為5, 循環(huán)不停止        

            語(yǔ)句;

 

         3>. for循環(huán)允許多層嵌套, 例如:  

  for        ( ; ; )

        {            
        for        ( ; ; )

            {                
        //        循環(huán)體        }
 //其他語(yǔ)句        }      

 

 
        
     實(shí)例: 用for循環(huán)求1+2+...+100的和  

  #include<iostream>      using        namespace         std ;        int         main()

{    
        int         i ;             
      //        循環(huán)控制變量        int         sum = 
      0         ;       
      //        存儲(chǔ)求和的結(jié)果, 賦初始值為0        for        ( i = 
      1        ; i <= 
      100        ; i++       )

        sum 
        += i ;      
      /*        1+2+...+100        */        

    cout        << sum <<endl ; 
      //        輸出求和的結(jié)果        return        0         ;

}

 

 



 2. while循環(huán)      
     while循環(huán)使用的基本形式:  

  while        (判斷表達(dá)式)

        循環(huán)體

 


     當(dāng)程序執(zhí)行到while循環(huán)時(shí)首先計(jì)算 判斷表達(dá)式 , 當(dāng)判斷表達(dá)式的值為真(不為0)時(shí)便開(kāi)始執(zhí)行循環(huán)體, 當(dāng) 判斷表達(dá)式 的值為假(為0)時(shí)跳過(guò)循環(huán)體繼續(xù)執(zhí)行循環(huán)體下面的語(yǔ)句。
     例如:  

  int         i = 
      0         ;    
        while        ( i < 
      10         )

    {

        cout        << i <<       endl ;

        i 
        ++       ;

    }

 

 
     首先為循環(huán)控制變量i賦初始值為0, 然后程序執(zhí)行到while時(shí)計(jì)算 i < 10, 此時(shí) i 的值為0, 所以 i < 10 為真, 程序開(kāi)始執(zhí)行循環(huán)體中的語(yǔ)句 : 輸出目前 i 的值, 然后用 i ++ ; 使i的值增加1, 執(zhí)行完一次循環(huán)后再到 i < 10這里判斷值是否為真, 直到 i 的值大于或等于10時(shí)結(jié)束循環(huán)。
     
     和for循環(huán)一樣, while循環(huán)也允許多層嵌套。
     
     實(shí)例: 用for循環(huán)求1+2+...+100的和  

  #include<iostream>      using        namespace         std ;        int         main()

{    
        int         i = 
      1         ;         
      //        循環(huán)控制        int         sum = 
      0         ;       
      //        計(jì)算結(jié)果        while        ( i <= 
      100         )

    {

        sum 
        +=       i ;

        i 
        ++       ;

    }

    cout        << sum <<       endl ;    
        return        0         ;

}

 

 



 3. do...while循環(huán)      
     與while循環(huán)不同, while循環(huán)是先判斷 判斷表達(dá)式 中的值是否為真再?zèng)Q定是否執(zhí)行循環(huán)體, 而 do...while 循環(huán)是先執(zhí)行一次循環(huán)體再判斷是否繼續(xù)執(zhí)行循環(huán)體, 通過(guò)一個(gè)示例說(shuō)明:  

  int         i = 
      0         ;         
      //        循環(huán)控制        do        

    {

        cout        << i <<      endl ;

    }        while        ( i > 
      0        ) ;    
      //        當(dāng)i>0時(shí)執(zhí)行循環(huán)

 

 
     在這段代碼中, 首先為循環(huán)控制變量 i 賦初始值0, 然后進(jìn)入 do...while循環(huán)體中, 執(zhí)行       cout<< i <<endl ;         這句 , 然后再判斷i是否大于0, 若i大于0則繼續(xù)循環(huán), 否則結(jié)束循環(huán), 這里的i不大于0, 所以執(zhí)行了一次循環(huán)體后便結(jié)束了循環(huán)。
     
     也就是說(shuō), 無(wú)論 是否符合do...while的執(zhí)行條件, 循環(huán)體總要執(zhí)行一次。
     
     總結(jié)一下就是: while循環(huán)線判斷循環(huán)條件再執(zhí)行循環(huán)體, do...while循環(huán)先執(zhí)行一次循環(huán)體再判斷是否繼續(xù)執(zhí)行循環(huán)體。
     
     注意: do...while中while后面的分號(hào)(;)不可省略。
     
     實(shí)例: 用do...while循環(huán)求1+2+...+100的和  

  #include<iostream>      using        namespace         std ;        int         main()

{    
        int         i = 
      1         ;         
      //        循環(huán)控制        int         sum = 
      0         ;       
      //        計(jì)算結(jié)果        do        

    {

        sum 
        +=       i ;

        i 
        ++       ;

    }        while        ( i <= 
      100         ) ;

    cout        << sum <<      endl ;    
        return        0         ;

}

 

 



 二、循環(huán)控制      
 1. break語(yǔ)句      
     break語(yǔ)句通常用在循環(huán)語(yǔ)句或開(kāi)關(guān)語(yǔ)句(switch)中。其作用是從當(dāng)前循環(huán)或當(dāng)前switch語(yǔ)句中跳出, 從而執(zhí)行當(dāng)前語(yǔ)句的下一條語(yǔ)句。
     
     例如在switch語(yǔ)句中:  

  int         i = 
      1         ;    
        switch        ( i )

    {        
        case        0        :

            cout        << 
      "        0        "         <<      endl ;        
        case        1        :

            cout        << 
      "        1        "         <<      endl ;        
        case        2        :

            cout        << 
      "        2        "         <<      endl ;        
        default        :

            cout        << 
      "        Others        "         <<      endl;

    }

 

 
     這里沒(méi)有使用break語(yǔ)句, 看下輸出:  

  1        2        Others

 


     可以看到, 程序從滿足的case處將后面的語(yǔ)句全部輸出了, 如果我們只想得到一個(gè)結(jié)果, 而不是將入口后面的case語(yǔ)句全部執(zhí)行的話就需要case語(yǔ)句了, 可以這樣:  

  case        0        :

            cout        << 
      "        0        "         <<endl ; 
      break         ;        
        case        1        :

            cout        << 
      "        1        "         <<endl ; 
      break         ;        
        case        2        :

            cout        << 
      "        2        "         <<endl ; 
      break         ;        
        default        :

            cout        << 
      "        Others        "         <<endl;

 

 
     在每個(gè)case語(yǔ)句后加上一個(gè)break語(yǔ)句, 當(dāng)執(zhí)行到滿足條件的case語(yǔ)句后再執(zhí)行完該case后的語(yǔ)句塊便退出switch語(yǔ)句。
     
     再舉一個(gè)break語(yǔ)句應(yīng)用于循環(huán)語(yǔ)句中的例子, 以while循環(huán)為例:  

  int         i = 
      0         ;    
        while        ( 
      true         )

    {

        cout        << i <<      endl ;

        i 
        ++       ;        
        if        ( i > 
      10         )            
        break         ;

    }

 

     這里使用了      while( true )        語(yǔ)句,      true        是C++的關(guān)鍵字之一, 代表真, 也就是說(shuō)如果沒(méi)有其他任何語(yǔ)句這就是一個(gè)死循環(huán)(永遠(yuǎn)不會(huì)停止), 這里我們還定義了一個(gè)變量i, 在循環(huán)體中使用      cout<< i << ;        輸出i的值, i++ ;語(yǔ)句是i自增1, 接下來(lái)是if語(yǔ)句, 條件表達(dá)式是當(dāng) i > 10時(shí)執(zhí)行if語(yǔ)句塊中的語(yǔ)句, 也就是說(shuō)當(dāng)i自增到大于10時(shí)就會(huì)執(zhí)行break語(yǔ)句, 從而跳出while循環(huán), 這樣while( true )就不再是死循環(huán)了。

     注意:      
         1>. break語(yǔ)句對(duì)if-else的條件語(yǔ)句不起作用。
         2>. 在多層循環(huán)中,一個(gè)break語(yǔ)句只向外跳一層。     


 2. continue語(yǔ)句      
     continue語(yǔ)句的作用是跳過(guò)本輪循環(huán)中剩余的語(yǔ)句, 而執(zhí)行下一輪循環(huán)。continue語(yǔ)句只用在for、while、do-while等循環(huán)體中, 常與if條件語(yǔ)句一起使用, 用來(lái)控制循環(huán), 但不能用來(lái)控制if語(yǔ)句中的剩余語(yǔ)句。
     
     一個(gè)實(shí)例: 輸出100以內(nèi)同時(shí)能被3整除且能同時(shí)被5整除的整數(shù)。  

  #include<iostream>      using        namespace         std ;        int         main()

{    
        int         i;    
        for        ( i = 
      0        ; i < 
      100        ; i++       )

    {        
        if        ( i % 
      3         != 
      0         || i % 
      5         != 
      0         )  
      //        當(dāng)i不符合要求時(shí)結(jié)束本次循環(huán)        continue         ;

        cout        << i <<endl ;   
      //        輸出i        }    
        return        0         ;

}

 

 
     程序輸出的結(jié)果是15, 30, 45, 60, 75, 90。 從if語(yǔ)句中可以看出, 當(dāng)i不能整除3或5時(shí)就continue繼續(xù)下一個(gè)循環(huán), 所以      cout<< i <<endl ;        這句不會(huì)被每次都執(zhí)行, 只有沒(méi)有被continue時(shí)才能執(zhí)行到該輸出語(yǔ)句。  


 3. goto語(yǔ)句      
     當(dāng)循環(huán)嵌套較深且需要全部跳出循環(huán)時(shí), 使用goto語(yǔ)句應(yīng)該說(shuō)是個(gè)不錯(cuò)的選擇, 例如:  

  #include<iostream>      using        namespace         std ;        int         main()

{    
        int         i, m, n;    
        for        ( i = 
      0        ; i < 
      100        ; i++       )

    {        
        for        ( m = 
      0        ; m < 
      100        ; m++       )

        {            
        for        ( n = 
      0        ; n < 
      100        ; n++       )

            {                
        if        ( (i + m + n) == 
      256         )

                {

                    cout        <<      "        i = 
        "        << i <<      endl;

                    cout        <<      "        m = 
        "        << m <<      endl;

                    cout        <<      "        n = 
        "        << n <<      endl;                    
        goto         stop ;

                }

            }

        }

    }

    stop: cout        <<      "        Stop        "        <<      endl;    
        return        0         ;

}

 

     這里是使用3個(gè)for循環(huán)嵌套, 計(jì)算3個(gè)100以內(nèi)的數(shù)i, m, n相加和為256的情況, 這里我們只取一個(gè)結(jié)果, 也就是說(shuō)只要出現(xiàn)第一個(gè)符合條件的i, m, n 輸出后便退出循環(huán), 如果在if語(yǔ)句中使用break的話只能退出當(dāng)前if語(yǔ)句所在的循環(huán), 而無(wú)法退出更上一層的循環(huán)。
     
     使用goto語(yǔ)句在循環(huán)外部定義一個(gè)表示stop, 需要退出所有循環(huán)時(shí)直接goto到循環(huán)外部, 這樣就相當(dāng)于一次跳出了3個(gè)循環(huán)。  



更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 双流县| 滁州市| 青冈县| 龙井市| 喀什市| 南皮县| 陆丰市| 新泰市| 伽师县| 巴青县| 玉田县| 化州市| 滨州市| 峨眉山市| 万宁市| 长丰县| 开鲁县| 苍山县| 长岛县| 六安市| 香格里拉县| 高雄市| 兴安县| 五家渠市| 青田县| 郧西县| 两当县| 星座| 鹤峰县| 乌海市| 睢宁县| 边坝县| 隆化县| 永兴县| 玛曲县| 重庆市| 昌平区| 霍山县| 嘉禾县| 上虞市| 伊通|