18video性欧美19sex,欧美高清videosddfsexhd,性少妇videosexfreexxx片中国,激情五月激情综合五月看花,亚洲人成网77777色在线播放

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

C語(yǔ)言的循環(huán)與分支-2

汽車電子技術(shù) ? 來(lái)源:微亮筆記 ? 作者: PASSION ? 2023-02-21 15:35 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

上期我們介紹了分支語(yǔ)句的兩種句型:if 語(yǔ)句和 switch case語(yǔ)句。 而在c語(yǔ)言中我們經(jīng)常會(huì)需要重復(fù)地進(jìn)行一些指令,但是不斷的編輯重復(fù)代碼不僅很繁瑣,還容易出現(xiàn)bug,因此循環(huán)語(yǔ)句的使用就非常有必要。今天要介紹的就是循環(huán)語(yǔ)句相關(guān)的知識(shí)。

本期主要介紹三種循環(huán)語(yǔ)句

1) while語(yǔ)句

2) do while語(yǔ)句

  1. for 語(yǔ)句
    
  2. 代碼規(guī)范化
    
  • while語(yǔ)句

我們已經(jīng)掌握了 if 語(yǔ)句

if(條件)
          語(yǔ)句;

當(dāng)條件滿足的情況下,if語(yǔ)句后面的語(yǔ)句執(zhí)行,否則不執(zhí)行。這個(gè)語(yǔ)句只會(huì)執(zhí)行一次。

但我們發(fā)現(xiàn)生活中很多實(shí)際的例子是:同一件事情我們需要循環(huán)執(zhí)行多次。

那如何去滿足上述需求呢?c語(yǔ)言中引入了:while語(yǔ)句,可以實(shí)現(xiàn)循環(huán)。

while語(yǔ)句的語(yǔ)法結(jié)構(gòu):

while(表達(dá)式)
       循環(huán)語(yǔ)句;

還是使用一個(gè)代碼來(lái)解釋while循環(huán)的執(zhí)行過(guò)程:

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

通過(guò)代碼可以看到,表達(dá)式i<=10在i==1的情況下判斷為真,所以循環(huán)體中的語(yǔ)句執(zhí)行,最后打印出1-10,那么我們可以知道,當(dāng)表達(dá)式為真時(shí),while循環(huán)才會(huì)執(zhí)行,當(dāng)表達(dá)式為假,循環(huán)則不會(huì)執(zhí)行。那么如果表達(dá)式是一個(gè)非0的數(shù),循環(huán)會(huì)不會(huì)一直執(zhí)行呢?

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

圖片

通過(guò)運(yùn)行結(jié)果可以看到,當(dāng)表達(dá)式為1時(shí),while循環(huán)會(huì)一直執(zhí)行循環(huán)體,也就變成了一個(gè)死循環(huán)。

while循環(huán)中的break:

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

通過(guò)前面的代碼我們知道這個(gè)代碼是用于打印1-10,那么如果在i==5的時(shí)候加入break,會(huì)發(fā)生什么呢?

圖片

可以看到當(dāng)加入了break之后,當(dāng)執(zhí)行到i==5時(shí),后面的循環(huán)并沒有執(zhí)行,那么可以理解為break語(yǔ)句的意思是終止循環(huán)。

while循環(huán)中的continue語(yǔ)句

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


    i++;
  }
  return 0;
}

圖片

上面我們知道了break的作用,那么continue和break有什么區(qū)別呢,通過(guò)運(yùn)行結(jié)果可以看到,當(dāng)輸出到4時(shí),代碼進(jìn)入了一個(gè)死循環(huán),而不是像break一樣終止,這是為什么呢?我來(lái)解釋一下,continue的意思為繼續(xù),當(dāng)代碼執(zhí)行到continue時(shí),會(huì)跳過(guò)本次循環(huán)而繼續(xù)下一次,從代碼中看到,當(dāng)i==5時(shí),循環(huán)跳過(guò),那么i++不會(huì)執(zhí)行,i的值就不會(huì)改變,那么i==5回到表達(dá)式判斷5<10,進(jìn)入循環(huán),那么這個(gè)時(shí)候i==5就又會(huì)觸發(fā)continue,然后i++又不能執(zhí)行,就造成i的值一直為5,一直跳過(guò),就成了一個(gè)死循環(huán)。

  • do while語(yǔ)句

語(yǔ)法結(jié)構(gòu):

do {
     循環(huán)體語(yǔ)句;
} while(條件判斷語(yǔ)句);

執(zhí)行流程:

①執(zhí)行初始化語(yǔ)句

②執(zhí)行循環(huán)體語(yǔ)句

③執(zhí)行條件控制語(yǔ)句

④執(zhí)行條件判斷語(yǔ)句,看其結(jié)果是true還是false

如果是false,循環(huán)結(jié)束

如果是true,循環(huán)繼續(xù)執(zhí)行

⑤回到②繼續(xù)

do while語(yǔ)句與while很相似,只不過(guò)do while語(yǔ)句是先執(zhí)行循環(huán)體語(yǔ)句后進(jìn)行條件判斷

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

  • for循環(huán)

語(yǔ)法結(jié)構(gòu):

for (表達(dá)式1; 表達(dá)式2; 表達(dá)式3)
{
        語(yǔ)句;
}

首先要強(qiáng)調(diào)兩點(diǎn):

  1. 表達(dá)式1、表達(dá)式2和表達(dá)式3之間是用分號(hào)“ ;”隔開的,千萬(wàn)不要寫成逗號(hào)。

  2. for(表達(dá)式1;表達(dá)式2;表達(dá)式3)的后面千萬(wàn)不要加分號(hào),很多新手都會(huì)犯這種錯(cuò)誤——會(huì)情不自禁地在后面加分號(hào)。

    因?yàn)?for 循環(huán)只能控制到其后的一條語(yǔ)句,而在C語(yǔ)言中分號(hào)也是一個(gè)語(yǔ)句——空語(yǔ)句。所以如果在后面加個(gè)分號(hào),那么 for 循環(huán)就只能控制到這個(gè)分號(hào),下面大括號(hào)里面的語(yǔ)句就不屬于 for 循環(huán)了。

執(zhí)行流程:

//求解表達(dá)式1。
//求解表達(dá)式2。若其值為真,則執(zhí)行 for 語(yǔ)句中指定的內(nèi)嵌語(yǔ)句,然后執(zhí)行第3步;若表達(dá)式2值為假,則結(jié)束循環(huán),轉(zhuǎn)到第5步。
//求解表達(dá)式3。
//轉(zhuǎn)回上面第2步繼續(xù)執(zhí)行。
//循環(huán)結(jié)束,執(zhí)行 for 語(yǔ)句下面的語(yǔ)句。

從這個(gè)執(zhí)行過(guò)程中可以看出,“表達(dá)式1”只執(zhí)行一次,循環(huán)是在“表達(dá)式2”“表達(dá)式3”和“內(nèi)嵌語(yǔ)句”之間進(jìn)行的。

for循環(huán)的最簡(jiǎn)單形式:

for (循環(huán)變量賦初值; 循環(huán)條件; 循環(huán)變量增值)
{
    語(yǔ)句;
}

下面我們使用for循環(huán)寫一個(gè)簡(jiǎn)單的代碼

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

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

三種循環(huán)的區(qū)別:

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

do…while循環(huán)先執(zhí)行一次循環(huán)體,然后判斷條件是否成立,是否繼續(xù)執(zhí)行循環(huán)體(先執(zhí)行后判斷)

  • 代碼規(guī)范化

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

2)像 if、for、while 等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào) (,以突出關(guān)鍵字。

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

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

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

但是寫成半開半閉也有一個(gè)問題,就是會(huì)影響對(duì)代碼的理解。有時(shí)候?qū)懗扇]的區(qū)間理解起來(lái)才順暢,而寫成半開半閉反而不易理解,比如 `<=`右邊是變量或表達(dá)式的時(shí)候。這時(shí)候要以可讀性為第一要素,即哪種好理解就使用哪種?,F(xiàn)在 CPU 速度那么快,也不在乎那點(diǎn)效率。所以前面說(shuō)“盡量”,沒有要求一定要那樣寫。
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 指令
    +關(guān)注

    關(guān)注

    1

    文章

    617

    瀏覽量

    37211
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    183

    文章

    7634

    瀏覽量

    144079
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4924

    瀏覽量

    72380
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    C語(yǔ)言基礎(chǔ)知識(shí)(5)--循環(huán)語(yǔ)句

    C語(yǔ)言基礎(chǔ)知識(shí)(5)--循環(huán)語(yǔ)句
    的頭像 發(fā)表于 06-15 10:18 ?3917次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>基礎(chǔ)知識(shí)(5)--<b class='flag-5'>循環(huán)</b>語(yǔ)句

    C語(yǔ)言中for循環(huán)的用法和應(yīng)用 C語(yǔ)言中for循環(huán)與while循環(huán)的區(qū)別

    C語(yǔ)言中的循環(huán)結(jié)構(gòu)時(shí),for循環(huán)是最常用的一種。它允許重復(fù)執(zhí)行一段代碼,直到滿足特定條件為止。
    發(fā)表于 08-18 16:33 ?4068次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中for<b class='flag-5'>循環(huán)</b>的用法和應(yīng)用 <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>中for<b class='flag-5'>循環(huán)</b>與while<b class='flag-5'>循環(huán)</b>的區(qū)別

    C語(yǔ)言循環(huán)結(jié)構(gòu)的使用方法

    詳細(xì)介紹了C語(yǔ)言while循環(huán)結(jié)構(gòu)、do-while循環(huán)結(jié)構(gòu)、for循環(huán)結(jié)構(gòu)、循環(huán)退出語(yǔ)句的語(yǔ)法
    發(fā)表于 11-02 11:26 ?2590次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>循環(huán)</b>結(jié)構(gòu)的使用方法

    C語(yǔ)言for循環(huán)的用法和注意事項(xiàng)

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

    深入理解C語(yǔ)言C語(yǔ)言循環(huán)控制

    C語(yǔ)言編程中,循環(huán)結(jié)構(gòu)是至關(guān)重要的,它可以讓程序重復(fù)執(zhí)行特定的代碼塊,從而提高編程效率。然而,為了避免程序進(jìn)入無(wú)限循環(huán),C
    的頭像 發(fā)表于 04-29 18:49 ?1541次閱讀
    深入理解<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>:<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b><b class='flag-5'>循環(huán)</b>控制

    C語(yǔ)言入門教程-if語(yǔ)句和while循環(huán)

    if語(yǔ)句和while循環(huán) C語(yǔ)言中,if語(yǔ)句和while循環(huán)都會(huì)用到布爾表達(dá)式。下面是一個(gè)使用if語(yǔ)句的簡(jiǎn)單例子: #include
    發(fā)表于 07-29 10:48 ?8706次閱讀

    C語(yǔ)言教程之循環(huán)顯示隨機(jī)數(shù)問題

    C語(yǔ)言教程之循環(huán)顯示隨機(jī)數(shù)問題,很好的C語(yǔ)言資料,快來(lái)學(xué)習(xí)吧。
    發(fā)表于 04-25 15:03 ?0次下載

    C++語(yǔ)言程序設(shè)計(jì)時(shí)如何控制語(yǔ)句?

    本文檔的主要內(nèi)容詳細(xì)介紹的是C++語(yǔ)言程序設(shè)計(jì)時(shí)如何控制語(yǔ)句?內(nèi)容包括了1 C++語(yǔ)句概述2 if語(yǔ)句實(shí)現(xiàn)選擇結(jié)構(gòu)3 switch語(yǔ)句實(shí)現(xiàn)多分支
    發(fā)表于 09-20 14:51 ?2次下載
    <b class='flag-5'>C</b>++<b class='flag-5'>語(yǔ)言</b>程序設(shè)計(jì)時(shí)如何控制語(yǔ)句?

    C語(yǔ)言程序設(shè)計(jì)教程之如何設(shè)計(jì)循環(huán)結(jié)構(gòu)

    本文檔的主要內(nèi)容詳細(xì)介紹的是C語(yǔ)言程序設(shè)計(jì)教程之如何設(shè)計(jì)循環(huán)結(jié)構(gòu)主要內(nèi)容包括了:1 while語(yǔ)句2 do-while語(yǔ)句3 for 語(yǔ)句4 break、continue和goto語(yǔ)句
    發(fā)表于 10-26 16:48 ?0次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>程序設(shè)計(jì)教程之如何設(shè)計(jì)<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)

    C語(yǔ)言教程之使用循環(huán)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言程序的資料說(shuō)明

    本文檔詳細(xì)介紹的是C語(yǔ)言教程之使用循環(huán)結(jié)構(gòu)設(shè)計(jì)C語(yǔ)言程序的資料說(shuō)明主要內(nèi)容包括了:1.while循環(huán)
    發(fā)表于 02-15 11:27 ?3次下載
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>教程之使用<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)設(shè)計(jì)<b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>程序的資料說(shuō)明

    C語(yǔ)言的3種循環(huán)結(jié)構(gòu)分析

    C語(yǔ)言循環(huán)結(jié)構(gòu)有for循環(huán)、while循環(huán)、do循環(huán)和goto
    的頭像 發(fā)表于 05-20 13:43 ?1.2w次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的3種<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)分析

    從零開始跟我學(xué)C語(yǔ)言之分支結(jié)構(gòu)(下)

    Hi!這里是漁火。今天我們繼續(xù)來(lái)講C語(yǔ)言分支結(jié)構(gòu)。在C語(yǔ)言里,可以使用if-else實(shí)現(xiàn)分支結(jié)
    的頭像 發(fā)表于 02-07 09:27 ?1331次閱讀

    C語(yǔ)言循環(huán)分支

    我們大家都知道,c語(yǔ)言是一門** 結(jié)構(gòu)化 **的程序設(shè)計(jì)語(yǔ)言,程序的運(yùn)行都是以某種結(jié)構(gòu)和順序?yàn)楣羌苋?zhí)行的,那么本期就向大家介紹一下c語(yǔ)言
    的頭像 發(fā)表于 02-21 15:32 ?1460次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>的<b class='flag-5'>循環(huán)</b>與<b class='flag-5'>分支</b>

    C語(yǔ)言基礎(chǔ)篇--選擇/順序/循環(huán)結(jié)構(gòu)

    讀取更多技術(shù)文章,請(qǐng)掃碼關(guān)注前言在C語(yǔ)言中,按照程序的執(zhí)行流程不同,分為順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu)。多么復(fù)雜的邏輯事物都是由這三個(gè)結(jié)構(gòu)組成。順序結(jié)構(gòu)順序結(jié)構(gòu)是最簡(jiǎn)單的一種流程結(jié)構(gòu),它
    的頭像 發(fā)表于 04-02 11:00 ?2185次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>基礎(chǔ)篇--選擇/順序/<b class='flag-5'>循環(huán)</b>結(jié)構(gòu)

    c語(yǔ)言在while中嵌套if循環(huán)

    C語(yǔ)言是一種廣泛使用的面向過(guò)程編程語(yǔ)言,它提供了許多控制結(jié)構(gòu)來(lái)幫助程序員實(shí)現(xiàn)復(fù)雜的邏輯和流程控制。其中,while循環(huán)和if語(yǔ)句是非常常見和重要的控制結(jié)構(gòu)。本文將詳細(xì)介紹
    的頭像 發(fā)表于 11-22 10:09 ?8131次閱讀