Objective-C之成魔之路【6-迴圈結構】,objective-c6-

來源:互聯網
上載者:User

Objective-C之成魔之路【6-迴圈結構】,objective-c6-

郝萌主傾心貢獻,尊重作者的勞動成果,請勿轉載。

如果文章對您有所協助,歡迎給作者捐贈,支援郝萌主,捐贈數額隨意,重在心意^_^ 

我要捐贈: 點擊捐贈

Cocos2d-X源碼下載:點我傳送


電腦的基本屬性之一就是它能夠重複執行一組語句。
迴圈語句的作用是反覆執行一段代碼, 直到滿足終止迴圈的條件為止。
 Objective-C語言中提供的迴圈語句有: 
• while語句
• do-while語句
• for語句

while語句, 它的文法形式如下, 其中“[] ” 中的部分可以省略。 
   [initialization]
   while (termination){
     body;
   [iteration;]
   }

舉例如下:
水仙花數是指一個 n 位元 ( n>=3 ),它的每個位上的數位 n 次冪之和等於它本身。
(例如:1^3 + 5^3 + 3^3 = 153)

下面代碼是計算1000以內的水仙花數。 
int i = 100;
int r, s, t;
r = 0;s = 0;t = 0;
while (i < 1000) {
r = i / 100;
s = (i - r * 100) / 10;
t = i - r * 100 - s * 10;
if (i == r * r * r + s * s * s + t * t * t) {
NSLog(@" %i " , i );
}
i = i + 1;
}三位的水仙花數共有4個,分別為:153、370、371、407。

do-while語句, 它的文法形式如下, 其中“[] ” 中的部分可以省略
[initialization]
   do {
     body;
   [iteration;]
} while (termination);

計算1000以內的水仙花數
int i = 100;
int r, s, t;
r = 0;s = 0;t = 0;
do {
r = i / 100;
s = (i - r * 100) / 10;
t = i - r * 100 - s * 10;
if (i == r * r * r + s * s * s + t * t * t) {
NSLog(@" %i " , i );
}
i = i + 1;
} while (i < 1000);

for語句, 文法形式如下:
for (initialization; termination; iteration){
     body;
}
舉例如下:
下面代碼是計算0~10平方、 立方數並輸出:  
int i = 10;
int r, s;
r = 0;
s = 0;
for (int j = 0; j <= i ; j++) {
r = j * j;
s = j * j * j;
NSLog(@"整數為: %i 對應的平方和%i :對應的立方和:%i ", j, i , s);
}

for語句小結

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

1.先求初始運算式的值。

2.求迴圈條件的值。

3.執行組成迴圈體的程式語句。

4.求迴圈運算式的值。

5.返回到2執行。

在for迴圈語句的“() ” 內部一般有3條語句, 
initialization初始化語句, termination終止條件陳述式, iteration迭代語句, 
其中這3條語句都是可以省略的。 
例如把j 的初始化放在迴圈體的外面, 代碼如下: 
int j = 0;
for (; j <= i ; j++) {
r = j * j;
s = j * j * j;
NSLog(@"整數為: %i 對應的平方和%i :對應的立方和:%i ", j, i , s);
}

跳躍陳述式
與程式轉移有關的跳轉有break, continue, goto語句, 
break和continue都主要與迴圈有, 
goto語句在C中就有, 它是無條件跳轉可以完全替代break和continue, 一般要慎用 。

break語句
break語句在switch中使用過, 用來終止switch語句的執行。
break語句還可以用於迴圈體中, 終止當前的迴圈, 並緊跟該迴圈塊的第一條語句處執行。 

舉例如下: 
break語句
for (int i = 0; i < 10; i++) {
if (i == 3)
break;
NSLog(@ " i =%i", i);
}
NSLog(@" Game Over!");
i =0
i =1
i =2
Game Over!
也就是說如果在一組嵌套迴圈中執行break語句,僅會推出執行break語句的最內層迴圈。
continue語句
continue語句用來結束本次迴圈, 跳過迴圈體中下面尚未執行的語句, 
接著進行終止條件的判斷, 以決定是否繼續迴圈。 
對於for語句, 在進行終止條件的判斷前, 還要先執行迭代語句。 

舉例如下: 
for (int i = 0; i < 100; i ++) {
if (i % 10 == 0)
continue;
NSLog(@"%i ", i );
}

18
19
21
22

goto語句
goto語句是無條件跳轉, 可以完全替代break和continue。
如果是嵌套迴圈, 可以使用 goto語句指定標籤, 來改變程式的流程。

舉例如下:  
for (int j = 0; j < 10; j++) {
for (int i = 0; i < 10; i++) {
if (i == 3)
goto label;
NSLog(@ " i =%i", i);
}
}
label:
NSLog(@" Game Over!");
在內迴圈中使用 break和continue都只能跳出內迴圈, 
goto語句沒有這個限制, 
label: 是標籤定義, goto語句後面要跟有標籤。

(3)由“For i = 1 To 16 Step 3”決定的迴圈結構被執行( ) 20119答案:B A) 4次 B)5次 C)6次 D)7次

C 6次
i=1的時候執行第1次
i=4的時候執行第2次
i=7的時候執行第3次
i=10的時候執行第4次
i=13的時候執行第5次
i=16的時候執行第6次
 
編寫程式,使用迴圈結構,輸出: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

#include <stdio.h>

int main(void)
{
int i = 0;
while (1)
{
printf("%d ", ++i);
if (i == 15)
break;
}
return 0;
}
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.