亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

object-C控制語句

2019-11-14 19:34:00
字體:
來源:轉載
供稿:網友

在ObJC中,有若干方法可以重復執行一系列代碼,這些重復執行的功能稱之為循環功能,它們由以下幾部分構成:

  • for語句
  • while語句
  • do語句

舉一個簡單的例子,如果想求10以內所有整數之和:(代碼如下)

只需要將十以內的整數進行相加運算就可以,甚至在大腦中進行運算就可以。但是如果是100以內的整數相加,那么大部分人都會感到頭疼,這時候就可以通過一些特殊的方法來解決如下問題。

至此引入循環結構——計算機的基本屬性之一就是它可以重復執行一組語句。這種循環能力讓程序員能夠開發出包含重復過程的簡潔程序,這些過程能夠以不同的方式執行成百上千的程序語句。ObJC中包含3種用于編寫循環結構的程序語句。

------for語句

計算100以內所有整數之和。

打印結束后 結果為:5050.

從中我們可以看到,由于引用了for()循環語句,相當于計算機自動幫助我們疊加n的值,直到n<101(n=100),而計算機一邊幫我們疊加n的值,一邊幫我們計算sum的值。

那么sum的值是如何計算的呢。首先先解釋for語句的一般格式:

  for(init_exPRession;loop_condition;loop_expression)

    program statement

圓括號中的三個表達式,建立了程序循環的“環境”。其后的program statement(要以分號結尾),可以是任何ObJC語句,但是必須是合法的。它們組成循環體。這條語句執行的次數由for語句中設置的參數決定。

for語句的第一部分標著init_expression用于再循環開始之前設置初始值;第二部分標著loop_condition用于指定繼續執行循環所需的條件(只要滿足既定的條件,那么程序就會繼續執行),如果循環不在滿足既定的條件,那么程序就會停止循環,跳出循環之后繼續執行循環體外的程序(在上個代碼中就會繼續執行NSlog(@"SUM=%d",sum);)。到這,關于sum的值是如何計算的,應該已經非常明確了,

        (sum+=n)等價于(sum=sum+n),循環滿足條件,n每次循環都會增加1(n++),那么每一次新的循環后等待求和的sum就等于上次循環得到的sum值加上新n值。 

直到滿足循環條件,循環結束。

總之,for語句將按以下步驟執行:

  • 先求初始表達式的值。這個表達式通常設置一個將在循環中使用的變量,對于某些初始值(例如0或1)來說,通常稱為索引變量。
  • 求循環條件的值,這個表達式通常用于改變索引變量的值,最常見的情況是,將索引變量的值加1或減1。
  • 執行組成循環體的程序語句。
  • 求索引表達式的值。這個表達式通常用于改變所以變量的值,最常見的情況,就是將索引變量增加1或者減少1.
  • 返回步驟(2)。

代碼:生成三角數表的程序

打印結果:

在上個代碼中,前三個NSlog語句的目的僅僅是提供總標題和輸出列的標題。在顯示適當的標題后,程序將計算前10個三角數,在你計算1-n的和時,使用變量n記錄當前的數字,使用變量sum存儲n的三角數值。(最后一行沒對齊,如果想對齊,可將最后的NSlog修改為:NSlog(@"%2i      %i",n,sum);)

鍵盤輸入:如果我們不想計算前100個整數的和,改為計算前200,前500的整數之和,除了去代碼中修改,還有一個更簡單的方法,就是自己控制想要求多少以內的數的和,用鍵盤輸入。

打印結果為:

本人輸入的是59,那么計算機將計算1-59的和=1770。

那么問題又來了,如果我想要不斷的計算不同的數,該怎么辦?我們引入嵌套循環。

  在循環中,考慮到需要人為終止循環,否則將會一直無休止的循環下去,所以我添加了變量stop并設置初值為1,也就是說循環開始只循環一次,然后在循環中加入stop++,這樣每次循環結束,都會開始新一輪循環直到你感到厭煩想要終止這一切,按照本人現在的水平,只能寫出按0退出的程度,不過也大體上符合了人道主義精神(我十分相信,如果我不加終止,那么如果有人看到這個程序,并且嘗試了那么肯定有那么一個執著的人相信循環會有盡頭。。。)

言歸正傳,第一個for循環主要解決用戶要計算多少個整數之和的問題,而第二個for循環解決這個整數的和是多少的問題。

該程序的其他位置都沒有使用counter這個變量,它的作用僅僅是充當循環計數器,但是,因為它是一個變量,所以必須在程序中聲明。

如果將該程序轉變成我們都能看得懂的語言那么就是:

    一共循環運行5次!{

      讓用戶輸入他想計算的整數,如果他不想輸入了就按0退出。

      得到他輸入的整數,并且計算出結果。

      將結果打印出來。

}

------while語句

while語句進一步擴展了ObJC語言中得循環功能指令系統。while語句經常使用的語句語法如下:

  while(expression)

    program statement

圓括號中得expression將被求值。如果表達式求值的結果為true,則執行隨后的語句(program statement),執行完這條語句(或位于花括號中得一組語句之后),將再次對表達式求值,若果求值結果為true,將再次執行循環語句。直到表達式的最終求值結果為false時,循環終止,然后執行program statement之后的語句。

試著用while語句求1-100的整數和:

 

打印結果為5050。

從以上程序中會發現,使用for語句同樣可以方便的完成該任務。事實上,for語句都可轉換成等價的while語句,反之亦然。比如說,下面的這個for語句語法結構可以轉換成while語句語法結構

   for(init_expression;loop_condition;loop_expression)

        program statement

改為while語句后:

init_expression;

  while(loop_condition){

    program statement

        loop_expression; 

        } 

來一個求兩個數最大公約數(greatest common divisor)的代碼:

不說明最大公約數(簡稱為gcd)是什么,只說明求出gcd的步驟:

  1. 首先我們需要兩個非負整數:c 和 d。
  2. 若c=0,結束,即gcd=u。
  3. 計算temp=c%d,c=d,d=temp,并回到步驟2.

 

搞定,運行結果是如圖所示。

繼續來一個,寫一個能夠將輸入的數倒過來分行輸出的程序。

OK,成功。

------do語句

  上面介紹的兩個循環語句(for and while)都是需要在循環開始前測試一組條件。因此,如果條件不滿足,則可能永遠都不會執行循環體。開發程序時,有時需要在循環結尾處(而不是在開始)處執行測試。自然而然,ObJC語言也提供了專門的語言結構用于處理這種情況,即do語句,該語句的語法如下:

do

  program statement

while (expression);


  do語句的執行過程為:首先,執行程序語句(program statement)。其次,求(expression)中得值,如果表達式的求之結果為true,循環將繼續,并再次執行程序語句。只要表達式的計算結果始終為true,就將重復執行程序語句。當表達式求出的值為false時,循環將終止并以正常順序執行程序中的下一條語句。

  do語句只是while語句的簡單轉置,它把循環條件放在循環的末尾,而不是放在開頭。上文編寫的把數翻轉過來的程序,如果輸入的為0,那么程序將永遠不會執行循環語句,但是使用do循環語句代替while語句,至少可以讓程序執行一次,從而保證在所有的情況下都至少顯示一個數字。

  代碼如下:

即使 你輸入的是0,那么也會有一次輸出,也就是說,運行此程序即使你不按常理出牌,循環也會為你做一次~。

-------break語句

  在循環過程中,有時候希望只要發生特定的條件(例如發生了錯誤條件或者遍歷一列數據時查找到了)就立即退出循環。break語句就是實現這個目的的,只要執行break語句,程序將立即退出正在執行的循環,無論此循環是for  while or do。循環內break之后的語句將被跳過,并且該循環的執行也將終止,而轉去執行循環外的其他語句。

  如果在一組嵌套循環中執行break語句,僅會退出執行break語句的最內層循環。

  break語句的格式僅是在關鍵字break之后添加一個分號,形式如下:

  break;

------continue語句

  continue語句和break語句類似,但它并不會使循環結束。執行continue語句時,循環會跳過該語句之后直到循環結尾處之間的所有語句。除此之外,循環將和平常一樣執行。

  continue通常用來根據某個條件繞過循環中的一組語句,除此之外,循環會繼續執行。continue語句的格式如下:

  continue;

 

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久视频这里只有精品| 国产精品一区av| 亚洲高清一二三区| 色中色综合影院手机版在线观看| 国产精品中文字幕在线| 国产精品com| 高清视频欧美一级| 在线观看视频亚洲| 亚洲第一区中文字幕| 亚洲精品理论电影| 中文字幕不卡在线视频极品| 亚洲精品久久视频| 日韩精品免费观看| 久久在线免费视频| 欧美在线一区二区三区四| 国产视频亚洲视频| 欧美多人爱爱视频网站| 日本高清+成人网在线观看| 97在线观看视频| 一本一本久久a久久精品牛牛影视| 亚洲精品mp4| 亚洲欧美在线一区二区| 亚洲精品一区二区三区不| 国产男女猛烈无遮挡91| 久久久成人精品| 77777少妇光屁股久久一区| 国产人妖伪娘一区91| 欧美激情中文字幕在线| 亚洲欧美色婷婷| 国产精品久久久久久久9999| 色樱桃影院亚洲精品影院| 日韩视频在线观看免费| 国产精品入口免费视频一| 国内揄拍国内精品少妇国语| 久久久噜久噜久久综合| 久久精品久久久久电影| 欧美国产在线电影| 久久国产天堂福利天堂| 91热福利电影| 国产日韩欧美夫妻视频在线观看| 国产97人人超碰caoprom| 成人精品在线观看| 欧洲亚洲免费视频| 欧美性猛交视频| 久久久久久国产| 91国产在线精品| 中文字幕欧美日韩在线| 91久久精品一区| 国产成人a亚洲精品| 日韩av免费在线播放| 亚洲3p在线观看| 国产自产女人91一区在线观看| 欧美国产欧美亚洲国产日韩mv天天看完整| 亚洲欧美国产精品va在线观看| 91影院在线免费观看视频| www.日本久久久久com.| 亚洲娇小xxxx欧美娇小| 国产情人节一区| 精品视频一区在线视频| 久久在线视频在线| 成人免费网视频| 欧美一级大片在线观看| 日本成人黄色片| 中文字幕日韩电影| 日韩中文在线观看| 精品国产一区二区三区久久久狼| 国产精品久久久久久久久久ktv| 国产成人精品久久亚洲高清不卡| 国产v综合ⅴ日韩v欧美大片| 国产精品偷伦免费视频观看的| 亚洲日本成人女熟在线观看| 欧美激情图片区| 日韩一区二区精品视频| 国产69久久精品成人看| 亚洲最大的免费| 国产主播在线一区| 九色精品免费永久在线| 国产xxx69麻豆国语对白| 亚洲香蕉成人av网站在线观看| 国产日韩中文字幕| 国产欧美日韩中文字幕| 欧美电影第一页| 久久在线免费观看视频| 2019亚洲男人天堂| 中文字幕国产亚洲2019| 欧美激情videoshd| www欧美日韩| 亚洲欧洲日本专区| 欧美另类极品videosbest最新版本| 日韩欧美视频一区二区三区| 国产视频丨精品|在线观看| 欧美在线性爱视频| 亚洲qvod图片区电影| 中文字幕日韩在线视频| 国产欧美日韩中文字幕| 国产精品美女呻吟| 国产一级揄自揄精品视频| 国产日韩在线视频| 青青a在线精品免费观看| 亚洲人成在线观看网站高清| 欧美成人精品在线| 高清一区二区三区四区五区| 亚洲一区二区国产| 国产精品入口免费视| 日韩欧美国产视频| 国产成人精品免费久久久久| 98精品国产自产在线观看| 96sao精品视频在线观看| 欧美性猛交xxxx| 欧美在线亚洲在线| 最新国产精品亚洲| 国产精品日韩在线观看| 欧美精品性视频| 国产精品自拍小视频| 中文字幕久热精品视频在线| 亚洲男人天堂久| 久久精品国产亚洲精品2020| 日韩久久免费视频| 中文字幕久久久| 日韩精品在线免费观看视频| 欧美在线视频免费播放| 亚洲黄色成人网| 日韩欧美大尺度| 久久精品视频亚洲| 国产精品美乳在线观看| 韩国19禁主播vip福利视频| 久久伊人色综合| 日韩欧美aⅴ综合网站发布| 成人性生交xxxxx网站| 色综合天天综合网国产成人网| 亚洲女人初尝黑人巨大| 91久久久国产精品| 国产成人精品电影久久久| 欧美丰满片xxx777| 国产这里只有精品| 日韩免费av在线| 久久综合久中文字幕青草| 国产亚洲aⅴaaaaaa毛片| 欧美中文在线观看国产| 91福利视频在线观看| 91av在线免费观看| 亚洲欧美国产一本综合首页| 欧美wwwxxxx| 亚洲v日韩v综合v精品v| 亚洲深夜福利视频| 中日韩美女免费视频网址在线观看| 日韩视频在线一区| 欧美国产激情18| 日韩极品精品视频免费观看| 亚洲精品成人免费| 国产精品普通话| 精品网站999www| 亚洲视频电影图片偷拍一区| 久久成人精品视频| 最近2019中文字幕mv免费看| 尤物tv国产一区| 动漫精品一区二区| 亚洲国产美女精品久久久久∴| 国外成人免费在线播放| 日韩在线视频免费观看| 国产网站欧美日韩免费精品在线观看| 欧美激情中文网| 中文字幕亚洲欧美日韩在线不卡| 欧美大片免费看|