R สำหรับลูป
สำหรับลูป
ลูfor
ปใช้สำหรับวนซ้ำลำดับ:
ตัวอย่าง
for (x in 1:10) {
print(x)
}
ซึ่งไม่เหมือนกับfor
คีย์เวิร์ดในภาษาการเขียนโปรแกรมอื่นๆ และทำงานเหมือนวิธีการวนซ้ำมากกว่าที่พบในภาษาการเขียนโปรแกรมเชิงวัตถุอื่นๆ
ด้วยfor
ลูป เราสามารถรันชุดคำสั่งได้หนึ่งครั้งสำหรับแต่ละรายการในเวกเตอร์ อาร์เรย์ รายการ ฯลฯ..
ตัวอย่าง
พิมพ์ทุกรายการในรายการ:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
print(x)
}
ตัวอย่าง
พิมพ์จำนวนลูกเต๋า:
dice <- c(1, 2, 3, 4, 5, 6)
for (x in dice) {
print(x)
}
ลู ปfor
ไม่ต้องการตัวแปรการจัดทำดัชนีเพื่อตั้งค่าล่วงหน้า เช่นเดียวกับwhile
ลูป
หยุดพัก
ด้วยbreak
คำสั่งนี้ เราสามารถหยุดการวนซ้ำก่อนที่มันจะวนผ่านรายการทั้งหมด:
ตัวอย่าง
หยุดวนซ้ำที่ "เชอร์รี่":
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "cherry") {
break
}
print(x)
}
การวนซ้ำจะหยุดที่ "เชอร์รี่" เนื่องจากเราได้เลือกการวนซ้ำโดยใช้break
คำสั่งเมื่อ
x
มีค่าเท่ากับ "เชอร์รี่" ( x ==
"cherry"
)
ถัดไป
ด้วยnext
คำสั่งนี้ เราสามารถข้ามการวนซ้ำได้โดยไม่ต้องสิ้นสุดการวนซ้ำ:
ตัวอย่าง
ข้าม "กล้วย":
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "banana") {
next
}
print(x)
}
เมื่อลูปผ่าน "กล้วย" มันจะข้ามและวนต่อไป
ยัทซี!
ถ้า .. อื่นรวมกับ For Loop
เพื่อแสดงให้เห็นตัวอย่างที่ใช้งานได้จริง ให้เราบอกว่าเราเล่นเกมของ Yahtzee!
ตัวอย่าง
พิมพ์ "ยัทซี!" ถ้าเลขลูกเต๋าคือ 6:
dice <- 1:6
for(x in dice) {
if (x == 6) {
print(paste("The dice number is", x, "Yahtzee!"))
} else {
print(paste("The dice number is", x, "Not Yahtzee"))
}
}
หากการวนซ้ำถึงค่าตั้งแต่ 1 ถึง 5 จะพิมพ์ "No Yahtzee" และหมายเลขของมัน เมื่อถึงค่า 6 จะพิมพ์ว่า "Yahtzee!" และจำนวนของมัน
ลูปซ้อน
คุณยังสามารถมีลูปภายในลูปได้:
ตัวอย่าง
พิมพ์คำคุณศัพท์ของผลไม้แต่ละชนิดในรายการ:
adj <- list("red", "big", "tasty")
fruits <- list("apple", "banana",
"cherry")
for (x in adj) {
for (y in fruits) {
print(paste(x, y))
}
}