R Cho vòng lặp


Đối với các vòng lặp

Một forvòng lặp được sử dụng để lặp qua một trình tự:

Thí dụ

for (x in 1:10) {
  print(x)
}

Từ khóa này ít giống fortừ khóa trong các ngôn ngữ lập trình khác và hoạt động giống như một phương thức trình vòng lặp như được tìm thấy trong các ngôn ngữ lập trình hướng đối tượng khác.

Với forvòng lặp, chúng ta có thể thực hiện một tập hợp các câu lệnh, một lần cho mỗi mục trong một vectơ, mảng, danh sách, v.v.

Bạn sẽ tìm hiểu về danh sáchvectơ , v.v. trong chương sau.

Thí dụ

In mọi mục trong danh sách:

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  print(x)
}

Thí dụ

In số lượng xúc xắc:

dice <- c(1, 2, 3, 4, 5, 6)

for (x in dice) {
  print(x)
}

Vòng forlặp không yêu cầu phải đặt trước biến lập chỉ mục, giống như với whilecác vòng lặp.


Nghỉ

Với breakcâu lệnh, chúng ta có thể dừng vòng lặp trước khi nó lặp lại qua tất cả các mục:

Thí dụ

Dừng vòng lặp tại "cherry":

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "cherry") {
    break
  }
  print(x)
}

Vòng lặp sẽ dừng lại ở "cherry" vì chúng ta đã chọn kết thúc vòng lặp bằng cách sử dụng breakcâu lệnh when xbằng "cherry" ( x == "cherry").


Kế tiếp

Với nextcâu lệnh, chúng ta có thể bỏ qua một lần lặp mà không kết thúc vòng lặp:

Thí dụ

Bỏ qua "chuối":

fruits <- list("apple", "banana", "cherry")

for (x in fruits) {
  if (x == "banana") {
    next
  }
  print(x)
}

Khi vòng lặp vượt qua "banana", nó sẽ bỏ qua và tiếp tục lặp.


Yahtzee!

Nếu .. Khác Kết hợp với Vòng lặp Cho

Để chứng minh một ví dụ thực tế, hãy giả sử chúng tôi chơi trò chơi Yahtzee!

Thí dụ

In "Yahtzee!" Nếu số xúc xắc là 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"))
  }
}

Nếu vòng lặp đạt đến các giá trị từ 1 đến 5, nó sẽ in ra "No Yahtzee" và số của nó. Khi nó đạt đến giá trị 6, nó sẽ in "Yahtzee!" và số của nó.


Vòng lồng nhau

Bạn cũng có thể có một vòng lặp bên trong một vòng lặp:

Thí dụ

In tính từ của từng loại trái cây trong danh sách:

adj <- list("red", "big", "tasty")

fruits <- list("apple", "banana", "cherry")
  for (x in adj) {
    for (y in fruits) {
      print(paste(x, y))
  }
}