Döngü için R
Döngüler için
Bir for
dizi üzerinde yineleme yapmak için bir döngü kullanılır:
Örnek
for (x in 1:10) {
print(x)
}
Bu, for
diğer programlama dillerindeki anahtar kelimeye daha az benzer ve diğer nesne yönelimli programlama dillerinde bulunan bir yineleyici yöntemi gibi çalışır.
Döngü ile for
bir vektör, dizi, liste vb. içindeki her öğe için bir kez bir dizi ifade çalıştırabiliriz.
Örnek
Listedeki her öğeyi yazdırın:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
print(x)
}
Örnek
Zar sayısını yazdırın:
dice <- c(1, 2, 3, 4, 5, 6)
for (x in dice) {
print(x)
}
Döngü , döngülerde for
olduğu gibi önceden ayarlamak için bir indeksleme değişkeni gerektirmez while
.
Kırmak
İfadeyle break
, tüm öğeler arasında döngü yapmadan önce döngüyü durdurabiliriz:
Örnek
Döngüyü "kiraz" da durdurun:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "cherry") {
break
}
print(x)
}
Döngü "kiraz"da duracaktır çünkü döngüyü "kiraz"a eşit break
olduğunda ( ) ifadeyi
kullanarak bitirmeyi seçtik .x
x ==
"cherry"
Sonraki
İfadeyle next
, döngüyü sonlandırmadan bir yinelemeyi atlayabiliriz:
Örnek
"Muz" atla:
fruits <- list("apple", "banana", "cherry")
for (x in fruits) {
if (x == "banana") {
next
}
print(x)
}
Döngü "muz" u geçtiğinde, onu atlayacak ve döngüye devam edecektir.
Yahtzee!
If .. Else For Döngüsü ile Birleştirilmiş
Pratik bir örnek göstermek için, diyelim ki bir Yahtzee oyunu oynuyoruz!
Örnek
"Yahtzee!" Yazdır Zar sayısı 6 ise:
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"))
}
}
Döngü, 1'den 5'e kadar olan değerlere ulaşırsa, "Yahtzee Yok" ve numarasını yazdırır. 6 değerine ulaştığında "Yahtzee!" yazdırır. ve onun numarası.
İç içe geçmiş döngüler
Ayrıca bir döngünün içinde bir döngüye sahip olabilirsiniz:
Örnek
Her meyvenin sıfatını bir liste halinde yazdırın:
adj <- list("red", "big", "tasty")
fruits <- list("apple", "banana",
"cherry")
for (x in adj) {
for (y in fruits) {
print(paste(x, y))
}
}