在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

C語言的循環與分支-2

汽車電子技術 ? 來源:微亮筆記 ? 作者: PASSION ? 2023-02-21 15:35 ? 次閱讀

上期我們介紹了分支語句的兩種句型:if 語句和 switch case語句。 而在c語言中我們經常會需要重復地進行一些指令,但是不斷的編輯重復代碼不僅很繁瑣,還容易出現bug,因此循環語句的使用就非常有必要。今天要介紹的就是循環語句相關的知識。

本期主要介紹三種循環語句

1) while語句

2) do while語句

  1. for 語句
    
  2. 代碼規范化
    
  • while語句

我們已經掌握了 if 語句

if(條件)
          語句;

當條件滿足的情況下,if語句后面的語句執行,否則不執行。這個語句只會執行一次。

但我們發現生活中很多實際的例子是:同一件事情我們需要循環執行多次。

那如何去滿足上述需求呢?c語言中引入了:while語句,可以實現循環。

while語句的語法結構:

while(表達式)
       循環語句;

還是使用一個代碼來解釋while循環的執行過程:

#include 
int main()
{
  int i = 1;
  while (i<=10)
  {
    printf("%d\\n", i);
    i++;
  }
  return 0;
}

通過代碼可以看到,表達式i<=10在i==1的情況下判斷為真,所以循環體中的語句執行,最后打印出1-10,那么我們可以知道,當表達式為真時,while循環才會執行,當表達式為假,循環則不會執行。那么如果表達式是一個非0的數,循環會不會一直執行呢?

#include 
int main()
{
  while (1)
  {
    printf("a");
  }
  return 0;
}

圖片

通過運行結果可以看到,當表達式為1時,while循環會一直執行循環體,也就變成了一個死循環。

while循環中的break:

#include 
int main()
{
  int i = 1;
  while (i<=10)
  {
    printf("%d\\n", i);
    if (i==5)
    {
      break;
    }
    i++;
  }
  return 0;
}

通過前面的代碼我們知道這個代碼是用于打印1-10,那么如果在i==5的時候加入break,會發生什么呢?

圖片

可以看到當加入了break之后,當執行到i==5時,后面的循環并沒有執行,那么可以理解為break語句的意思是終止循環。

while循環中的continue語句

#include 
int main()
{
  int i = 1;
  while (i<=10)
  {
    if (i == 5)
    {
      continue;
    }
    printf("%d\\n", i);


    i++;
  }
  return 0;
}

圖片

上面我們知道了break的作用,那么continue和break有什么區別呢,通過運行結果可以看到,當輸出到4時,代碼進入了一個死循環,而不是像break一樣終止,這是為什么呢?我來解釋一下,continue的意思為繼續,當代碼執行到continue時,會跳過本次循環而繼續下一次,從代碼中看到,當i==5時,循環跳過,那么i++不會執行,i的值就不會改變,那么i==5回到表達式判斷5<10,進入循環,那么這個時候i==5就又會觸發continue,然后i++又不能執行,就造成i的值一直為5,一直跳過,就成了一個死循環。

  • do while語句

語法結構:

do {
     循環體語句;
} while(條件判斷語句);

執行流程:

①執行初始化語句

②執行循環體語句

③執行條件控制語句

④執行條件判斷語句,看其結果是true還是false

如果是false,循環結束

如果是true,循環繼續執行

⑤回到②繼續

do while語句與while很相似,只不過do while語句是先執行循環體語句后進行條件判斷

此循環語句使用的較其他兩種較少,一般是在一些小游戲(猜數字,三子棋)中使用

  • for循環

語法結構:

for (表達式1; 表達式2; 表達式3)
{
        語句;
}

首先要強調兩點:

  1. 表達式1、表達式2和表達式3之間是用分號“ ;”隔開的,千萬不要寫成逗號。

  2. for(表達式1;表達式2;表達式3)的后面千萬不要加分號,很多新手都會犯這種錯誤——會情不自禁地在后面加分號。

    因為 for 循環只能控制到其后的一條語句,而在C語言中分號也是一個語句——空語句。所以如果在后面加個分號,那么 for 循環就只能控制到這個分號,下面大括號里面的語句就不屬于 for 循環了。

執行流程:

//求解表達式1。
//求解表達式2。若其值為真,則執行 for 語句中指定的內嵌語句,然后執行第3步;若表達式2值為假,則結束循環,轉到第5步。
//求解表達式3。
//轉回上面第2步繼續執行。
//循環結束,執行 for 語句下面的語句。

從這個執行過程中可以看出,“表達式1”只執行一次,循環是在“表達式2”“表達式3”和“內嵌語句”之間進行的。

for循環的最簡單形式:

for (循環變量賦初值; 循環條件; 循環變量增值)
{
    語句;
}

下面我們使用for循環寫一個簡單的代碼

例:<求 1+2+3+4+…+100 的總和。>

# include 
int main(void)
{
    int i;
    int sum = 0;  //
    for (i=1; i<=100; ++i)  //++是自加的意思, ++i相當于i = i + 1
    {
        sum = sum + i;  /*等價于sum += i;但是不建議這么寫, 因為sum = sum + i看起來更清楚、更舒服*/
    }
    printf("sum = %d\\n", sum);
    return 0;
}

三種循環的區別:

for循環和while循環先判斷條件是否成立,然后決定是否執行循環體(先判斷后執行)

do…while循環先執行一次循環體,然后判斷條件是否成立,是否繼續執行循環體(先執行后判斷)

  • 代碼規范化

1)if、else、for、while、do 都只能控制到其后的一條語句,如果要控制多條語句必須加大括號 {}。但基于代碼規范化,if、else、for、while、do 后面的執行語句不論有多少行,就算只有一行也要加 {}

2)像 if、for、while 等關鍵字之后應留一個空格再跟左括號 (,以突出關鍵字。

此外上面的程序還有一個知識點要跟大家說一下:從功能上講, for(i=1; i<=100;++i)完全可以寫成 for(i=1; i<101; ++i),而且建議大家盡量使用這種寫法。也就是說,循環語句的循環條件盡量寫成半開半閉的,不管是 for 循環還是 while 循環。

for(i=1; i<101; ++i)實際上是 1≤i<101,是半開半閉的;而 for(i=1; i<=100; ++i)實際上是 1≤i≤100,是全閉的。那么為什么建議使用半開半閉的呢?因為如果寫成 i<=100 的話,那么每次判斷的時候都要判斷兩次,即 i<100 和 i==100,而寫成 i<101 的話每次只需要判斷一次。

也許有人說:程序在執行 i<=100 的時候不是將它轉換成 i<100||i==100 嗎?這樣由“短路或”的知識可知,如果前面的為真那么后面的不就不會執行了嗎?這樣不也是判斷一次嗎?不是這樣的,系統是不會將 i<=100 轉換成 i<100||i==100 的,每次判斷的時候 i<100 和 i==100 都要判斷。

但是寫成半開半閉也有一個問題,就是會影響對代碼的理解。有時候寫成全閉的區間理解起來才順暢,而寫成半開半閉反而不易理解,比如 `<=`右邊是變量或表達式的時候。這時候要以可讀性為第一要素,即哪種好理解就使用哪種?,F在 CPU 速度那么快,也不在乎那點效率。所以前面說“盡量”,沒有要求一定要那樣寫。
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 指令
    +關注

    關注

    1

    文章

    607

    瀏覽量

    35710
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136813
  • 代碼
    +關注

    關注

    30

    文章

    4788

    瀏覽量

    68603
收藏 人收藏

    評論

    相關推薦

    C語言基礎知識(5)--循環語句

    C語言基礎知識(5)--循環語句
    的頭像 發表于 06-15 10:18 ?2298次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>基礎知識(5)--<b class='flag-5'>循環</b>語句

    C語言中for循環的用法和應用 C語言中for循環與while循環的區別

    C語言中的循環結構時,for循環是最常用的一種。它允許重復執行一段代碼,直到滿足特定條件為止。
    發表于 08-18 16:33 ?3254次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>中for<b class='flag-5'>循環</b>的用法和應用 <b class='flag-5'>C</b><b class='flag-5'>語言</b>中for<b class='flag-5'>循環</b>與while<b class='flag-5'>循環</b>的區別

    C語言循環結構的使用方法

    詳細介紹了C語言while循環結構、do-while循環結構、for循環結構、循環退出語句的語法
    發表于 11-02 11:26 ?1784次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b><b class='flag-5'>循環</b>結構的使用方法

    C語言for循環的用法和注意事項

    C 語言是一種廣泛使用的編程語言,它具有簡潔、高效、靈活的特點。C 語言中有很多控制流程的語句,其中 for
    的頭像 發表于 11-20 18:27 ?2404次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>for<b class='flag-5'>循環</b>的用法和注意事項

    C語言入門教程-if語句和while循環

    if語句和while循環 C語言中,if語句和while循環都會用到布爾表達式。下面是一個使用if語句的簡單例子: #include
    發表于 07-29 10:48 ?8552次閱讀

    C++語言基礎講解視頻do while循環語句

    C++語言基礎講解視頻do while循環語句
    發表于 01-14 15:32 ?5次下載

    C語言教程之循環顯示隨機數問題

    C語言教程之循環顯示隨機數問題,很好的C語言資料,快來學習吧。
    發表于 04-25 15:03 ?0次下載

    C++語言程序設計時如何控制語句?

    本文檔的主要內容詳細介紹的是C++語言程序設計時如何控制語句?內容包括了1 C++語句概述2 if語句實現選擇結構3 switch語句實現多分支
    發表于 09-20 14:51 ?2次下載
    <b class='flag-5'>C</b>++<b class='flag-5'>語言</b>程序設計時如何控制語句?

    C語言程序設計教程之如何設計循環結構

    本文檔的主要內容詳細介紹的是C語言程序設計教程之如何設計循環結構主要內容包括了:1 while語句2 do-while語句3 for 語句4 break、continue和goto語句
    發表于 10-26 16:48 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>程序設計教程之如何設計<b class='flag-5'>循環</b>結構

    C語言教程之使用循環結構設計C語言程序的資料說明

    本文檔詳細介紹的是C語言教程之使用循環結構設計C語言程序的資料說明主要內容包括了:1.while循環
    發表于 02-15 11:27 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>教程之使用<b class='flag-5'>循環</b>結構設計<b class='flag-5'>C</b><b class='flag-5'>語言</b>程序的資料說明

    C語言的3種循環結構分析

    C語言循環結構有for循環、while循環、do循環和goto
    的頭像 發表于 05-20 13:43 ?1.1w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的3種<b class='flag-5'>循環</b>結構分析

    從零開始跟我學C語言之分支結構(下)

    Hi!這里是漁火。今天我們繼續來講C語言分支結構。在C語言里,可以使用if-else實現分支
    的頭像 發表于 02-07 09:27 ?841次閱讀

    C語言循環分支

    我們大家都知道,c語言是一門** 結構化 **的程序設計語言,程序的運行都是以某種結構和順序為骨架去執行的,那么本期就向大家介紹一下c語言
    的頭像 發表于 02-21 15:32 ?945次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>的<b class='flag-5'>循環</b>與<b class='flag-5'>分支</b>

    C語言基礎篇--選擇/順序/循環結構

    讀取更多技術文章,請掃碼關注前言在C語言中,按照程序的執行流程不同,分為順序結構、分支結構和循環結構。多么復雜的邏輯事物都是由這三個結構組成。順序結構順序結構是最簡單的一種流程結構,它
    的頭像 發表于 04-02 11:00 ?1568次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語言</b>基礎篇--選擇/順序/<b class='flag-5'>循環</b>結構

    c語言在while中嵌套if循環

    C語言是一種廣泛使用的面向過程編程語言,它提供了許多控制結構來幫助程序員實現復雜的邏輯和流程控制。其中,while循環和if語句是非常常見和重要的控制結構。本文將詳細介紹
    的頭像 發表于 11-22 10:09 ?6180次閱讀
    主站蜘蛛池模板: 伊伊成人网| 色鬼久久| 女人张腿让男子桶免费动态图| 国产农村一级特黄α真人毛片| 日本免费人成黄页在线观看视频| 亚洲一区二区三区网站| 色噜噜狠狠成人影院| a毛片网站| 免费在线观看视频网站| 天天精品视频在线观看资源| 国产一级特黄毛片| 国产午夜视频| 亚洲婷婷综合色高清在线| 黄色aa毛片| 久久国产美女| 亚洲天堂最新地址| 国产卡1卡2卡三卡网站免费| 超碰v| 五月天婷婷在线视频| www.毛片网站| 好爽的视频黄| 人与禽交免费网站视频| 天天做天天爱天天操| 热re99久久精品国产99热| 女人夜夜春| 精品精品国产理论在线观看| 亚洲高清免费视频| 国产成在线人视频免费视频| 免费网站啪啪大全| 欧洲无线区一二区| 久久精品草| 天天摸日日摸人人看| 午夜在线网站| 久久精品国产免费中文| 精品美女在线观看| 欧美精品xxxⅹ欧美| 欧美性生交xxxxx久久久| 濑亚美莉iptd619在线观看| 性生大片一级毛片免费观看| 综合免费视频| 老师受年下高h男|