在跑步世界裡,用上堅強的跑者意志,可以讓人重複跑著台北田徑場甜甜圈,直到跑足指定的課表。
在電腦世界裡,使用迴圈(Loop),我們也可以讓電腦重複執行陳述式或區塊內的陳述式,直到指定的程式條件。
2010 F1馬來西亞站
攝於雪邦賽道(吉隆坡), 馬來西亞
R語言中的迴圈種類:
接下來,我們在資料夾MyR新增一支Day07.R
練習三種迴圈寫法,都要指定執行Lucky seven:7。
在Day07.R中輸入程式碼
#for loop 列舉i從1到7
for (i in 1:7) {
cat(i," for loop" ,"\r\n")
}
#c# foreach
執行結果
在Day07.R中輸入程式碼
#while loop
x <- 0
while (x < 7) {
x <- x + 1
cat(x, " while loop" , "\r\n")
}
執行結果
在Day07.R中輸入程式碼
#repeat loop
x <- 0
repeat {
x <- x + 1
if (x > 7) {
break;
}
cat(x, " repeat loop", "\r\n")
}
執行結果
陷入迴圈的兩個人;
孟獲問諸葛亮說,為什麼你每次都可以抓到我?
諸葛亮回孟獲說,為什麼你每次都可以被我抓?
於是這個迴圈持續了7次,史稱七擒七縱。
迴圈中的中斷點或是跳過這筆繼續下一筆,都是小寫英文單字。
在Day07.R中輸入程式碼
v <- LETTERS[1:5]
for (al in v) {
if (al == "C") {
next
}
cat(al, " next in loop", "\r\n")
}
執行結果:
*LETTERS代表A-Z,取1:5表示A、B、C、D、E。
v <- LETTERS[1:5]
for (al in v) {
if (al == "C") {
break
}
cat(al, " break in loop", "\r\n")
}
執行結果:
小結:Next
是指繼續下一筆,所以印完AB跳過C繼續印DE。(C# Continue)beark
則是 中斷整個迴圈,所以印完AB就停下來。(C# Beark)
完成了迴圈的複習,來試試小二的夢靨,曾經消失十年的九九乘法表!
在Day07.R中輸入程式碼
#九九乘法表
for (i in 1:9) {
for (j in 1:9) {
k = i * j
cat(i)
cat(" x ")
cat(j)
cat(" = ")
cat(k)
cat(" ")
}
cat("\n")
}
執行結果:
利用兩層迴圈實現。
哈!老婆覺得看賽車就是看車手繞圈圈,但喜歡的人就覺得很熱血!
2010 F1 馬來西亞站
攝於雪邦賽道(吉隆坡), 馬來西亞