版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Objective-C-2.0程序設(shè)計(jì)-第5章-循環(huán)結(jié)構(gòu)知識(shí)Objective-C-2.0程序設(shè)計(jì)-第5章-循環(huán)結(jié)構(gòu)(1)5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 在Objective-C中,有若干方法可以用于重復(fù)執(zhí)行一系列代碼。本章的主題是這些循環(huán)功能,它們由以下幾部分組成:vfor語(yǔ)句vwhile語(yǔ)句vdo語(yǔ)句 從一個(gè)簡(jiǎn)單的例子計(jì)數(shù)開(kāi)始討論。5 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu) 代碼清單5-1-#import / Program to calculate the eighth triangular numberint main (int argc, char *argv)NSAutoreleasePool * pool =
2、NSAutoreleasePool alloc init;int triangularNumber;triangularNumber = 1 + 2 + 3 + 4 + 5 + 6 + 7 + 8;NSLog (”The eighth triangular number is %i”, triangularNumber);pool drain;return 0;輸出:The eighth triangular number is 36第第5章章 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)do語(yǔ)句5.3break語(yǔ)句5.4while語(yǔ)句5.2循環(huán)結(jié)構(gòu)5.1continue語(yǔ)句5.5小結(jié)5.65.1 for語(yǔ)句語(yǔ)句 代碼清
3、單5-2的目的是計(jì)算第200位三角數(shù)。 代碼清單5-2-/ Program to calculate the 200th triangular number/ Introduction of the for statement#import int main (int argc, char *argv)autoreleasepoolint n, triangularNumber;triangularNumber = 0;for ( n = 1; n = 200; n = n + 1 )triangularNumber += n;NSLog (”The 200th triangular numb
4、er is %i”, triangularNumber);return 0;輸出:The 200th triangular number is 20XX05.1 for語(yǔ)句語(yǔ)句 用于計(jì)算第200位三角數(shù)的方法其實(shí)與5-1中用于計(jì)算第8位三角數(shù)的方法是相同的,就是求1到200之間的整數(shù)之和。 在執(zhí)行for語(yǔ)句之前,變量triangularNumber被設(shè)置為0。一般來(lái)說(shuō),在程序使用變量之前,需要將所有的變量初始化為某個(gè)值。雖然某些類(lèi)型的變量將被給定默認(rèn)值,但是無(wú)論如何都應(yīng)該為變量設(shè)置初始值。 for語(yǔ)句提供的機(jī)制可使你避免顯示地寫(xiě)出1到200之間的每個(gè)整數(shù)。從某種意義上講,這條語(yǔ)句將為你生成這些
5、數(shù)字。5.1 for語(yǔ)句語(yǔ)句 for語(yǔ)句的一般格式如下:for ( init_expression; loop_condition; loop_expression ) program statement; 圓括號(hào)中的3個(gè)表達(dá)式init_expression,loop_condition和loop_expression建立了程序循環(huán)的“環(huán)境”。其后的program statement可以是任何合法 的Objective-C程序語(yǔ)句,它們組成循環(huán)體。這條語(yǔ)句執(zhí)行的次數(shù)由for語(yǔ)句中設(shè)置的參數(shù)決定。 5.1 for語(yǔ)句語(yǔ)句 for語(yǔ)句的第一部分init_expression,用于在循環(huán)開(kāi)始之前設(shè)置
6、初始值。在代碼清單5-2中,for語(yǔ)句這個(gè)部分將n的初始值設(shè)置為1。 for語(yǔ)句的第二部分loop_condition用于指定繼續(xù)執(zhí)行循環(huán)所需要的條件。換言之,只要滿足這個(gè)條件,循環(huán)就將繼續(xù)執(zhí)行。在代碼清單5-2中,loop_condition是由以下關(guān)系表達(dá)式指定的:n=200;在這個(gè)例子中,只要n的值小于或等于200時(shí),構(gòu)成for循環(huán)體的程序語(yǔ)句triangularNumber+=;將被重復(fù)執(zhí)行。 當(dāng)不再滿足loop_condition條件時(shí),程序繼續(xù)執(zhí)行for循環(huán)之后的程序語(yǔ)句。 for語(yǔ)句的最后一部分loop_expression在每次執(zhí)行循環(huán)體之后求值。在代碼清單5-2中,loop_
7、expression的作用是將n的值加1。因此,每次把n的值加到triangularNumber之后,它的值都要加1。 值得注意的是,你的最終值201將不會(huì)加到triangularNumber的值上,因?yàn)橹灰辉贊M足循環(huán)條件,循環(huán)就會(huì)終止。5.1 for語(yǔ)句語(yǔ)句 總之,for語(yǔ)句將按以下步驟執(zhí)行:v先求初始表達(dá)式的值。這個(gè)表達(dá)式通常設(shè)置一個(gè)將在循環(huán)中使用的變量,對(duì)于某些初始值來(lái)說(shuō),通常稱(chēng)作索引變量。v求循環(huán)條件的值,如果條件不滿足,循環(huán)就立即終止。然后執(zhí)行循環(huán)之后的程序語(yǔ)句。v執(zhí)行組成循環(huán)體的程序語(yǔ)句。v求循環(huán)表達(dá)式的值。這個(gè)表達(dá)式通常用于改變索引變量的值,最常見(jiàn)的情況是,將索引變量的值加1
8、或減1。v返回到步驟2. 記?。貉h(huán)條件要在進(jìn)入循環(huán)時(shí),在第一次執(zhí)行循環(huán)體之前立即求值。還要記?。翰灰傺h(huán)末尾處的結(jié)束圓括號(hào)后面放置分號(hào)。這將導(dǎo)致循環(huán)立即終止。5.1 for語(yǔ)句語(yǔ)句 在代碼清單5-2中的for語(yǔ)句第二部分,有關(guān)系表達(dá)式n=200;這個(gè)表達(dá)式中的運(yùn)算符“=(小于或等于)”僅是Objective-C程序設(shè)計(jì)語(yǔ)言提供的若干關(guān)系運(yùn)算中的一個(gè)。這些關(guān)系運(yùn)算用于測(cè)試特定的條件。 表5-1列出了Objective-C中可用的所有關(guān)系運(yùn)算符。 表5-1 關(guān)系運(yùn)算符運(yùn)算符運(yùn)算符含義含義例子例子=Equal tocount = 10!=Not equal toflag != DONELess
9、thana b=Less than or equal tolow Greater thanpoints POINT_MAX=Greater than or equal toj = 05.1 for語(yǔ)句語(yǔ)句 關(guān)系運(yùn)算符的優(yōu)先級(jí)比所有的算術(shù)運(yùn)算符的優(yōu)先級(jí)都低。這意味著,如下表達(dá)式:ab+c將按a(b+c)來(lái)求值。 要特別注意等于運(yùn)算符(=),不要將其與賦值運(yùn)算符(=)混淆。表達(dá)式a=2用于測(cè)試a是否等于2,而表達(dá)式a=2是將2賦值給a。5.1 for語(yǔ)句語(yǔ)句 代碼清單5-3-/ Program to generate a table of triangular numbers#import int
10、 main (int argc, char *argv)autoreleasepoolint n, triangularNumber;NSLog (”TABLE OF TRIANGULAR NUMBERS”);NSLog (” n Sum from 1 to n”);NSLog (”- -”);triangularNumber = 0;for ( n = 1; n = 10; +n ) triangularNumber += n;NSLog (” %i %i”, n, triangularNumber);return 0;輸出:TABLE OF TRIANGULAR NUMBERSn Sum
11、from 1 to n- -1 12 33 6 4 10 5 15 6 21 7 28 8 36 9 4510 555.1 for語(yǔ)句語(yǔ)句 在代碼啊清單5-3中,前3個(gè)NSLog語(yǔ)句的目的僅僅是提供一個(gè)普通標(biāo)題并標(biāo)記輸出列。 在顯示適當(dāng)?shù)臉?biāo)題后,程序?qū)⒂?jì)算前10個(gè)三角數(shù)。變量n用于記錄當(dāng)前的數(shù)字,而變量triangularNumber用于存儲(chǔ)第n個(gè)三角數(shù)的值。 前面提到過(guò),在for語(yǔ)句之后的程序語(yǔ)句構(gòu)成了程序循環(huán)的主體。但是如果不只想執(zhí)行單個(gè)程序語(yǔ)句,而是想執(zhí)行一組語(yǔ)句,可以把這樣的程序語(yǔ)句放入一對(duì)花括號(hào)中。系統(tǒng)會(huì)把這組語(yǔ)句看做單個(gè)實(shí)體。5.1 for語(yǔ)句語(yǔ)句 在for語(yǔ)句的第三個(gè)部分中,有一
12、個(gè)表達(dá)式: +n;它意味著 n=n+1;事實(shí)上,+n其實(shí)是相當(dāng)合法的Objective-C表達(dá)式。它引入了Objective-C程序設(shè)計(jì)語(yǔ)言中的一個(gè)新運(yùn)算符自增運(yùn)算符。雙加號(hào)(或叫做自增運(yùn)算符)的作用是將運(yùn)算數(shù)加1。加1運(yùn)算在程序設(shè)計(jì)中很常見(jiàn)。因此,表達(dá)式+n等價(jià)于表達(dá)式n=n+1; 與自增運(yùn)算符相對(duì)的,是自減運(yùn)算符。用Objective-C書(shū)寫(xiě)的表達(dá)式bean_counter=bean_counter-1可用自減運(yùn)算符等價(jià)地表示成: -bean_counter; 一些程序員喜歡將+或-放到變量名后面,如n+或bean_counter-。這種情況是可以接受的,只不過(guò)是個(gè)人喜好問(wèn)題。5.1 fo
13、r語(yǔ)句語(yǔ)句 你可能已經(jīng)注意到,代碼清單5-3輸出的最后一行沒(méi)有對(duì)齊。使用以下NSLog語(yǔ)句來(lái)代替相應(yīng)的語(yǔ)句,可以改正這個(gè)小毛病。 NSLog (“%2i %i”, n, triangularNumber); NSLog語(yǔ)句所做的主要改動(dòng)是它包含了字段寬度的說(shuō)明。字符“%2i”告知NSLog例程:不僅在特定點(diǎn)顯示整數(shù)值,而且要展示的整數(shù)應(yīng)該占用顯示器的兩列。通常占用空間少于兩列的任何整數(shù)(即0到9之間的整數(shù))在顯示時(shí)都帶有一個(gè)前導(dǎo)空格。這種情況稱(chēng)為向右對(duì)齊。5.1.1 鍵盤(pán)鍵入鍵盤(pán)鍵入 代碼清單5-2可計(jì)算出第200個(gè)三角數(shù),但不能計(jì)算更多。如果要計(jì)算第50或者第100個(gè)三角數(shù),就不得不更改程序
14、,以便for循環(huán)可以執(zhí)行合適的次數(shù)。還必須更改NSLog語(yǔ)句來(lái)顯示正確的信息。 使用一個(gè)名為scanf的例程,可以解決上述問(wèn)題。在概念上,scanf例程與NSLog例程類(lèi)似。但NSLog例程用于顯示值,而scanf例程的用途是程序員可以把值輸入到程序中。當(dāng)然,如果使用圖形用戶(hù)界面編Objective-C程序,那么在程序中可能根本不用NSLog或scanf。5.1.1 鍵盤(pán)鍵入鍵盤(pán)鍵入 代碼清單5-4-#import int main (int argc, char *argv)autoreleasepoolint n, number, triangularNumber;NSLog (”What
15、 triangular number do you want?”);scanf (“%i”, &number);triangularNumber = 0;for ( n = 1; n = number; +n )triangularNumber += n;NSLog (”Triangular number %i is %in”, number, triangularNumber);return 0;5.1.1 鍵盤(pán)鍵入鍵盤(pán)鍵入 在后面的程序輸出中,用戶(hù)鍵入數(shù)字100,可以得到相應(yīng)的輸出結(jié)果。代碼清單5-4 輸出:What triangular number do you want?10
16、0Triangular number 100 is 5050 依照輸出,可以看出數(shù)字100是由用戶(hù)鍵入的。然后該程序計(jì)算第100個(gè)三角數(shù)并將結(jié)果5050顯示在終端上。如果用戶(hù)想要計(jì)算一個(gè)特定的三角數(shù),可以隨便鍵入10或者30。5.1.1 鍵盤(pán)鍵入鍵盤(pán)鍵入 在代碼清單5-4中,第一個(gè)NSLog語(yǔ)句: NSLog (”What triangular number do you want?”);用于提示用戶(hù)鍵入數(shù)字。到這時(shí),程序會(huì)停止等待,直到用戶(hù)輸入數(shù)字后,才繼續(xù)執(zhí)行下面的代碼。 當(dāng)用戶(hù)輸入數(shù)字后,程序調(diào)用scanf例程接收輸入。 scanf (“%i”, &number);scanf的第
17、一個(gè)參數(shù)是格式字符串。它不以字符開(kāi)頭。格式字符串告知scanf要從控制臺(tái)讀入的值類(lèi)型。和NSLog一樣,%i字符用于指定整型值。scanf例程的第二個(gè)參數(shù)用于指定將用戶(hù)鍵入的值存入到哪個(gè)變量中。在這種情況下,變量number之前的&字符是必須的。但不用擔(dān)心它在此處的功能。所以程序調(diào)用scanf,指定要輸入整型值并將其存儲(chǔ)到變量number中。 鍵入了希望的數(shù)字后,按下鍵盤(pán)上的enter鍵,表示該數(shù)字的鍵入工作已完成。程序便接下去執(zhí)行后續(xù)的代碼。5.1.2 嵌套的嵌套的for循環(huán)循環(huán) 代碼清單5-4向用戶(hù)提供了一下靈活性:使程序計(jì)算出任何想要的三角數(shù)。但是假設(shè)用戶(hù)要計(jì)算5個(gè)三角數(shù)的列表。
18、在這種情況下,用戶(hù)可簡(jiǎn)單地將程序執(zhí)行5次,每次鍵入要計(jì)算的列表中下一個(gè)三角數(shù)即可。 實(shí)現(xiàn)相同目的的另一個(gè)辦法是,通過(guò)向程序中插入循環(huán),將整個(gè)過(guò)程重復(fù)執(zhí)行5次。代碼清單5-5及其輸出說(shuō)明了執(zhí)行過(guò)程。5.1.2 嵌套的嵌套的for循環(huán)循環(huán) 代碼清單5-5-#import int main (int argc, char *argv)autoreleasepoolint n, number, triangularNumber, counter;for ( counter = 1; counter = 5; +counter ) NSLog (”What triangular number do yo
19、u want?”);scanf (“%i”, &number);triangularNumber = 0;for ( n = 1; n = number; +n )triangularNumber += n;NSLog (”Triangular number %i is %i”, number, triangularNumber);return 0;5.1.2 嵌套的嵌套的for循環(huán)循環(huán) 代碼清單5-5 輸出-What triangular number do you want?12Triangular number 12 is 78What triangular number do
20、you want?25Triangular number 25 is 325What triangular number do you want?50Triangular number 50 is 1275What triangular number do you want?75Triangular number 75 is 2850What triangular number do you want?83Triangular number 83 is 34865.1.2 嵌套的嵌套的for循環(huán)循環(huán) 該程序包含兩層for循環(huán)。最外層的for循環(huán)語(yǔ)句如下:for ( counter = 1; c
21、ounter = 5; +counter )這條語(yǔ)句指定該程序循環(huán)正好執(zhí)行5次。與上一個(gè)程序例子不同,程序的其他位置都沒(méi)有使用變量counter。它的作用僅僅是充當(dāng)for循環(huán)語(yǔ)句中的循環(huán)計(jì)數(shù)器。5.1.3 for循環(huán)的變形循環(huán)的變形 編寫(xiě)for循環(huán)時(shí),你可能發(fā)現(xiàn)在開(kāi)始循環(huán)之前需要初始化多個(gè)變量,或者可能每次循環(huán)都要計(jì)算多個(gè)表達(dá)式。for循環(huán)的任何位置都可包含多個(gè)表達(dá)式,只要使用逗號(hào)分隔這些表達(dá)式。例如,使用以下形式開(kāi)始for循環(huán): for ( i = 0, j = 0; i 10; +i ) 在循環(huán)開(kāi)始前,將i的值設(shè)為0,將j的值設(shè)為0。兩個(gè)表達(dá)式i=0和j=0通過(guò)逗號(hào)隔開(kāi),而兩者都是循環(huán)in
22、it_expression部分。另一個(gè)例子: for ( i = 0, j = 100; i 10; +i, j -= 10 ) .的for循環(huán)設(shè)置了兩個(gè)索引變量:i和j,在循環(huán)開(kāi)始之前,它們分別被初始化為0和100。每次執(zhí)行完循環(huán)體之后,i的值加1,j的值減10。 就像可能希望for循環(huán)的特定字段包含多個(gè)表達(dá)式一樣,可能還需要省略語(yǔ)句中的一個(gè)或多個(gè)字段。通過(guò)省略指定的字段并使用分號(hào)標(biāo)記其位置。省略for語(yǔ)句中的某個(gè)字段的最常見(jiàn)情形發(fā)生在無(wú)需計(jì)算初始表達(dá)式的值時(shí)。在這種情況下,init_expression字段可以簡(jiǎn)單的留白,只要任然包括分號(hào)即可: for ( ; j != 100; +j )
23、 .如果在進(jìn)入循環(huán)之前已經(jīng)設(shè)置了初始值,則可采用這條語(yǔ)句。5.1.3 for循環(huán)的變形循環(huán)的變形 省略loop_condition字段的for循環(huán)可有效地設(shè)置無(wú)限循環(huán),就是理論上執(zhí)行無(wú)限次循環(huán)。只要有其他方式退出循環(huán)(執(zhí)行return,break或goto語(yǔ)句),就可以使用這一循環(huán)。 在for循環(huán)中,還可定義一個(gè)變量作為初始表達(dá)式的一部分。使用以前定義變量的傳統(tǒng)方式可實(shí)現(xiàn): for ( int counter = 1; counter = 5; +counter )變量counter只在for循環(huán)的整個(gè)執(zhí)行過(guò)程中是已知的(它名為局部變量),并且不能在循環(huán)體外部訪問(wèn)。作為另一個(gè)例子: for (
24、 int n = 1, triangularNumber = 0; n = 200; +n )triangularNumber += n;定義了兩個(gè)整型變量,并相應(yīng)地設(shè)置了它們的值。第第5章章 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)do語(yǔ)句5.3break語(yǔ)句5.4while語(yǔ)句5.2continue語(yǔ)句5.5小結(jié)5.6循環(huán)結(jié)構(gòu)5.15.2 while語(yǔ)句語(yǔ)句 while語(yǔ)句進(jìn)一步擴(kuò)展了Objective-C語(yǔ)句中的循環(huán)功能指令系統(tǒng)。這個(gè)經(jīng)常使用的結(jié)構(gòu)的語(yǔ)法如下: while ( expression )program statement圓括號(hào)中指定的expression將被求值。如果求值的結(jié)果是true,則執(zhí)行隨
25、后的program statement。執(zhí)行完這條語(yǔ)句后,將再次對(duì)expression求值。繼續(xù)這個(gè)過(guò)程直到expression的最終求職結(jié)果是false為止。然后,繼續(xù)執(zhí)行program statement之后的語(yǔ)句。5.2 while語(yǔ)句語(yǔ)句 代碼清單5-6-/ This program introduces the while statement#import #import int main (int argc, char *argv)autoreleasepoolint count = 1;while ( count = 5 ) NSLog (”%i”, count);+count;
26、return 0;輸出:123455.2 while語(yǔ)句語(yǔ)句 從以上程序可以意識(shí)到,使用for循環(huán)一樣可以方便地完成該任務(wù)。事實(shí)上,for循環(huán)都可以轉(zhuǎn)換成等價(jià)的while語(yǔ)句,反之亦然。例如下面的for循環(huán): for ( init_expression; loop_condition; loop_expression )program statement可用while語(yǔ)句的形式等價(jià)地表示: init_expression; while ( loop_condition ) program statement loop_expression; 熟悉使用while語(yǔ)句之后,將對(duì)何時(shí)用while語(yǔ)句
27、更合理以及何時(shí)用for語(yǔ)句有更好的認(rèn)識(shí)。一般來(lái)說(shuō),最先選用for語(yǔ)句來(lái)實(shí)現(xiàn)執(zhí)行預(yù)定次數(shù)的循環(huán)。同樣,如果初始表達(dá)式,循環(huán)表達(dá)式和循環(huán)條件都涉及同一變量,那么for語(yǔ)句很可能更適合。5.2 while語(yǔ)句語(yǔ)句 下一個(gè)程序提供了使用while語(yǔ)句的另一個(gè)例子。這個(gè)程序計(jì)算兩個(gè)整數(shù)值的最大公因子(greatest common divisor,一下簡(jiǎn)稱(chēng)gcd)。 問(wèn)題:找出兩個(gè)非負(fù)整數(shù)u和v的最大公因子。 步驟1:若v等于0,則結(jié)束,gcd等于u。 步驟2:計(jì)算temp=u%v,u=v,v=temp并回到步驟1。 不要過(guò)分關(guān)注上述算法的運(yùn)行細(xì)節(jié)。代碼清單5-7找出用戶(hù)鍵入的兩個(gè)整數(shù)的gcd。5.2
28、while語(yǔ)句語(yǔ)句 代碼清單5-7-/ This program finds the greatest common divisor/ of two nonnegative integer values#import int main (int argc, char *argv)autoreleasepoolunsigned int u, v, temp;NSLog (”P(pán)lease type in two nonnegative integers.”);scanf (“%u%u”, &u, &v);while ( v != 0 ) temp = u % v;u = v;v =
29、 temp;NSLog (”Their greatest common divisor is %u”, u);return 0;5.2 while語(yǔ)句語(yǔ)句 輸入兩個(gè)整型值并分別存儲(chǔ)到變量u和v(只用%u格式字符讀入一個(gè)無(wú)符號(hào)的整型值)之后,程序進(jìn)入一個(gè)while循環(huán)來(lái)計(jì)算它們的最大公因子。退出while循環(huán)之后,u的值會(huì)顯示出來(lái),即代表v和u的原始值的gcd,并顯示一條適當(dāng)?shù)南ⅰ?.2 while語(yǔ)句語(yǔ)句 對(duì)于下一個(gè)說(shuō)明while語(yǔ)句的程序,設(shè)想的任務(wù)是反轉(zhuǎn)從終端輸入的整數(shù)位。例如,如果用戶(hù)鍵入數(shù)字1234,該程序?qū)堰@個(gè)數(shù)字的位顛倒過(guò)來(lái),并顯示4321. 通過(guò)將整數(shù)除以10之后取其余數(shù),可
30、提取整數(shù)最右邊的數(shù)字。例如,1234%10會(huì)得出值4,就是1234最右邊的數(shù)字,也是第一個(gè)要顛倒的數(shù)字。通過(guò)將數(shù)字除以10,可以獲得下一個(gè)數(shù)字。因此1234/10的結(jié)果為123,而123%10的結(jié)果為3,它是顛倒數(shù)字的下一個(gè)數(shù)。 這個(gè)過(guò)程可以一直執(zhí)行,知道計(jì)算出最后一個(gè)數(shù)字為止。一般情況下,如果最后一個(gè)整數(shù)除以10的結(jié)果為0,那么這個(gè)數(shù)字就是最后一個(gè)要提取的數(shù)字。5.2 while語(yǔ)句語(yǔ)句 代碼清單5-8-/ Program to reverse the digits of a number#import int main (int argc, char *argv)autoreleasepo
31、olint number, right_digit;NSLog (”Enter your number.”);scanf (“%i”, &number);while ( number != 0 ) right_digit = number % 10;NSLog (”%i”, right_digit);number /= 10;return 0;輸出:Enter your number.1357997531第第5章章 循環(huán)結(jié)構(gòu)循環(huán)結(jié)構(gòu)break語(yǔ)句5.4do語(yǔ)句5.3continue語(yǔ)句5.5小結(jié)5.6循環(huán)結(jié)構(gòu)5.1while語(yǔ)句5.25.3 do語(yǔ)句語(yǔ)句 迄今為止,本章討論的這兩個(gè)循環(huán)
32、結(jié)構(gòu)都要在循環(huán)開(kāi)始前測(cè)試一組條件。因此如果條件不滿足,那么可能永遠(yuǎn)都不會(huì)執(zhí)行循環(huán)體。開(kāi)發(fā)程序時(shí),有事需要在循環(huán)結(jié)尾(而不是在開(kāi)始)處執(zhí)行測(cè)試。Objective-C語(yǔ)言也提供了專(zhuān)門(mén)的語(yǔ)言結(jié)構(gòu)用于處理這種情況,即do語(yǔ)句: doprogram statement while ( expression ); do語(yǔ)句按以下過(guò)程執(zhí)行:首先執(zhí)行program statement。其次,求圓括號(hào)中expression的值,如果expression的求值結(jié)果為true,循環(huán)將繼續(xù),并再次執(zhí)行program statement。只要expression的計(jì)算結(jié)果為true,就將重復(fù)上述過(guò)程。當(dāng)expression的值為false時(shí),循環(huán)終止并以正常順序執(zhí)行程序中的下一條語(yǔ)句。 do語(yǔ)句只是while語(yǔ)句的簡(jiǎn)單轉(zhuǎn)置,它把循環(huán)條件放在循環(huán)的結(jié)尾而不是開(kāi)頭。 代碼清單5-8使用while語(yǔ)句來(lái)翻轉(zhuǎn)數(shù)字中的各個(gè)位。在5-8中,若用戶(hù)輸入的是0而不是1234,
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 范本新學(xué)期學(xué)習(xí)計(jì)劃范文集錦5篇
- 專(zhuān)業(yè)技術(shù)工作總結(jié)范文
- 個(gè)人年度述職報(bào)告范文
- DB12T 545-2014 南水北調(diào)工程現(xiàn)場(chǎng)項(xiàng)目管理規(guī)范
- 中級(jí)財(cái)務(wù)實(shí)訓(xùn)工作心得
- 個(gè)人試用期轉(zhuǎn)正述職報(bào)告
- 探究實(shí)驗(yàn)遵循的一般原則
- 防偽油墨 第2部分:磁性防偽油墨 征求意見(jiàn)稿
- 戒子規(guī)課件教學(xué)課件
- 義烏市七校七年級(jí)上學(xué)期語(yǔ)文11月期中聯(lián)考試卷
- 慢阻肺健康知識(shí)宣教完整版課件
- 閑魚(yú)玩法實(shí)戰(zhàn)班課件
- 中考作文指導(dǎo):考場(chǎng)作文擬題(共23張PPT)
- 人體解剖學(xué):神經(jīng)系統(tǒng)課件
- 六年級(jí)上冊(cè)數(shù)學(xué)課件-6.2 百分?jǐn)?shù)的認(rèn)識(shí)丨蘇教版 (共24張PPT)
- 【精品主題班會(huì)】高三家長(zhǎng)會(huì)(共30張PPT)
- 四年級(jí)上冊(cè)書(shū)法課件- 10蘭葉撇 |通用版 (共10張PPT)
- 消防水池 (有限空間)作業(yè)安全告知牌及警示標(biāo)志
- 大學(xué)政府采購(gòu)項(xiàng)目驗(yàn)收?qǐng)?bào)告(貨物服務(wù)類(lèi))
- 港口碼頭常用安全安全警示標(biāo)志
- 熱質(zhì)交換原理與設(shè)備復(fù)習(xí)題(題庫(kù))(考試參考)
評(píng)論
0/150
提交評(píng)論