《Arduino零基礎(chǔ)C語言編程》課件-ch2-2.2 控制語句_第1頁
《Arduino零基礎(chǔ)C語言編程》課件-ch2-2.2 控制語句_第2頁
《Arduino零基礎(chǔ)C語言編程》課件-ch2-2.2 控制語句_第3頁
《Arduino零基礎(chǔ)C語言編程》課件-ch2-2.2 控制語句_第4頁
《Arduino零基礎(chǔ)C語言編程》課件-ch2-2.2 控制語句_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

2.2控制語句(1)選擇結(jié)構(gòu)

a.if結(jié)構(gòu)

:用于與比較運算符結(jié)合使用,測試是否已達到某些條件if(x>120)digitalWrite(LEDpin,HIGH);//格式1

if(x>120)digitalWrite(LEDpin,HIGH);//格式2

if(x>120){digitalWrite(LEDpin,HIGH);}//格式3

if(x>120){//格式4digitalWrite(LEDpin1,HIGH);digitalWrite(LEDpin2,HIGH);}//以上格式都是正確的Arduino零基礎(chǔ)C語言編程12025/2/7b.if...else結(jié)構(gòu)

與基本的if語句相比,由于允許多個測試組合在一起,if/else可以使用更多的控制流。if(pinFiveInput<500){//動作A}else{//動作B}Arduino零基礎(chǔ)C語言編程22025/2/7注意:一個elseif語句塊可能有或者沒有終止else語句塊,同理。每個elseif分支允許有無限多個。if(pinFiveInput<500){//執(zhí)行動作A}elseif(pinFiveInput>=1000){//執(zhí)行動作B}else{//執(zhí)行動作C}另外一種表達互斥分支測試的方式,是使用switchcase語句。2025/2/7Arduino零基礎(chǔ)C語言編程3c.switchcase結(jié)構(gòu)語法:switch(var){//var:與不同的case中的值進行比較的變量caselabel://label:相應(yīng)的case的值//statementsbreak;caselabel://statementsbreak;default://statements}break關(guān)鍵字將中止并跳出switch語句段,常常用于每個case語句的最后面。如果沒有break語句,switch語句將繼續(xù)執(zhí)行下面的表達式(“持續(xù)下降”)直到遇到break,或者是到達switch語句的末尾。2025/2/7Arduino零基礎(chǔ)C語言編程4(2)循環(huán)結(jié)構(gòu)a.for結(jié)構(gòu)for語句用于重復(fù)執(zhí)行被花括號包圍的語句塊。一個增量計數(shù)器通常被用來遞增和終止循環(huán)。for語句對于任何需要重復(fù)的操作是非常有用的。常常用于與數(shù)組聯(lián)合使用以收集數(shù)據(jù)/引腳。for循環(huán)的頭部有三個部分:for(初始化部分;條件判斷部分;數(shù)據(jù)遞增部分){//語句塊}初始化部分被第一個執(zhí)行,且只執(zhí)行一次。每次通過這個循環(huán),條件判斷部分將被測試;如果為真,語句塊和數(shù)據(jù)遞增部分就會被執(zhí)行,然后條件判斷部分就會被再次測試,當(dāng)條件測試為假時,結(jié)束循環(huán)。2025/2/7Arduino零基礎(chǔ)C語言編程5示例://使用一個PWM引腳使LED燈閃爍intPWMpin=10;//LED在10號引腳串聯(lián)一個470歐姆的電阻

voidsetup(){//這里無需設(shè)置}voidloop(){for(inti=0;i<=255;i++){analogWrite(PWMpin,i);delay(10);}}2025/2/7Arduino零基礎(chǔ)C語言編程6編碼提示:C中的for循環(huán)比在其它計算機語言中發(fā)現(xiàn)的for循環(huán)要靈活的多。三個頭元素中的任何一個或全部可能被省略,盡管分號是必須的。而且初始化部分、條件判斷部分和數(shù)據(jù)遞增部分可以是任何合法的使用任意變量的C語句。且可以使用任何數(shù)據(jù)類型包括floats。這些不常用的類型用于語句段也許可以為一些罕見的編程問題提供解決方案。例如,在遞增部分中使用一個乘法將形成對數(shù)級增長:for(intx=2;x<100;x=x*1.5){ println(x);}輸出:2,3,4,6,9,13,19,28,42,63,94另一個例子,在一個for循環(huán)中使一個LED燈漸漸地變亮和變暗:voidloop(){intx=1;for(inti=0;i>-1;i=i+x){analogWrite(PWMpin,i);if(i==255)x=-1;//在峰值切換方向delay(10);}2025/2/7Arduino零基礎(chǔ)C語言編程7b.While結(jié)構(gòu)語法:while(expression){//expression-一個(布爾型)C語句,被求值為真或假//statement(s)}while循環(huán)將會連續(xù)地?zé)o限地循環(huán),直到圓括號()中的表達式變?yōu)榧?。被測試的變量必須被改變,否則while循環(huán)將永遠不會中止。這可以是代碼,比如一個遞增的變量,或者是一個外部條件,比如測試一個傳感器。示例:var=0;while(var<200){//做兩百次重復(fù)的事情var++;}2025/2/7Arduino零基礎(chǔ)C語言編程8c.do...while結(jié)構(gòu)語法:do{//語句塊}while(測試條件);do循環(huán)與while循環(huán)使用相同方式工作,不同的是條件是在循環(huán)的末尾被測試的,所以do循環(huán)總是至少會運行一次。示例:do{delay(50);//等待傳感器穩(wěn)定x=readSensors();//檢查傳感器的值}while(x<100);2025/2/7Arduino零基礎(chǔ)C語言編程9(3)跳轉(zhuǎn)語句a.break語句break用于中止do,for,或while循環(huán),繞過正常的循環(huán)條件。它也用于中止switch語句。示例:for(x=0;x<255;x++){digitalWrite(PWMpin,x);sens=analogRead(sensorPin);if(sens>threshold){//bailoutonsensordetectx=0;break;}delay(50);}2025/2/7Arduino零基礎(chǔ)C語言編程10b.continue語句continue語句跳過一個循環(huán)的當(dāng)前迭代的余下部分。(do,for,或while)。通過檢查循環(huán)測試條件它將繼續(xù)進行隨后的迭代。示例:for(x=0;x<255;x++){if(x>40&&x<120){//createjumpinvaluescontinue;}

digitalWrite(PWMpin,x);delay(50);}

2025/2/7Arduino零基礎(chǔ)C語言編程11c.return語句語法:return;returnvalue;//value:任何類型的變量或常量

終止一個函數(shù),并向被調(diào)用函數(shù)并返回一個值。示例://一個函數(shù),用于對一個傳感器輸入與一個閾值進行比較intcheckSensor(){if(analogRead(0)>400){return1;else{return0;}}return關(guān)鍵字對測試一段代碼很方便,不需“注釋掉”大段的可能是錯誤的代碼。voidloop(){//在此測試代碼是個好想法return;//這里是功能不正常的代碼//這里的代碼永遠也不會執(zhí)行}2025/2/7Arduino零基礎(chǔ)C語言編程12d.goto語句語法:label:gotolabel;//在程序中轉(zhuǎn)移程序流到一個標(biāo)記點提示:在C程序中不建議使用goto,而且一些C編程書的作者主張永遠不要使用goto語句,但是明智地使用它可以簡化某些代碼。許多程序員不贊成使用goto的原因是,無節(jié)制地使用goto語句很容易產(chǎn)生執(zhí)行流混亂的很難被調(diào)試程序。盡管如是說,仍然有很多使用goto語句而大大簡化編碼的實例。其中之一就是從一個很深的循環(huán)嵌套中跳出去,或者是if邏輯塊,在某些條件下。示例:for(byter=0;r<2

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論