Menu
Coddy logo textTech

Pętle zagnieżdżone

Część sekcji Podstawy ścieżki R w Coddy. Lekcja 44 z 78.

Możesz umieścić pętlę wewnątrz innej pętli, aby utworzyć pętlę zagnieżdżoną. Pętla wewnętrzna wykonuje się w całości podczas każdej iteracji pętli zewnętrznej, co jest przydatne podczas pracy z kombinacjami lub wzorami przypominającymi siatkę.

for (i in 1:3) {
  for (j in 1:2) {
    cat("i =", i, ", j =", j, "\n")
  }
}

Wynik:

i = 1 , j = 1 
i = 1 , j = 2 
i = 2 , j = 1 
i = 2 , j = 2 
i = 3 , j = 1 
i = 3 , j = 2

Dla każdej wartości i pętla wewnętrzna przechodzi przez wszystkie wartości j. Gdy i wynosi 1, j przyjmuje wartości od 1 do 2. Następnie i przyjmuje wartość 2, a j ponownie zaczyna od 1 i dochodzi do 2.

Praktycznym przykładem jest utworzenie prostego wzoru mnożenia:

for (row in 1:3) {
  for (col in 1:3) {
    cat(row * col, " ")
  }
  cat("\n")
}

Wynik:

1  2  3  
2  4  6  
3  6  9

Pętla zewnętrzna kontroluje wiersze, a pętla wewnętrzna obsługuje każdą kolumnę w danym wierszu. Po ukończeniu każdego wiersza wypisujemy znak nowej linii, aby przejść do następnej linii.

challenge icon

Wyzwanie

Łatwy

Odczytaj z wejścia dwie liczby: rows i cols.

Użyj zagnieżdżonych pętli, aby wypisać prostokąt liczb, w którym każda komórka zawiera sumę numeru wiersza i numeru kolumny. Wiersze są numerowane od 1 do rows, a kolumny od 1 do cols.

Wypisz każdy wiersz w osobnej linii, oddzielając wartości pojedynczą spacją. Użyj cat() do wypisywania i dodaj znak nowej linii po każdym wierszu.

Na przykład, jeśli dane wejściowe to 3 i 4, wynik powinien być następujący:

2 3 4 5 
3 4 5 6 
4 5 6 7

W pierwszym wierszu (wierszu 1) wartości to 1+1=2, 1+2=3, 1+3=4, 1+4=5. W drugim wierszu (wierszu 2) wartości to 2+1=3, 2+2=4, 2+3=5, 2+4=6 i tak dalej.

Spróbuj swoich sił

# Odczytaj dane wejściowe
con <- file("stdin", "r")
rows <- as.integer(suppressWarnings(readLines(con, n = 1)))
cols <- as.integer(suppressWarnings(readLines(con, n = 1)))
close(con)

# TODO: Napisz swój kod poniżej
# Użyj zagnieżdżonych pętli, aby wypisać prostokąt, w którym każda komórka zawiera row + column
# Użyj cat(), aby wypisać wartości oddzielone spacjami, dodając znak nowego wiersza po każdym wierszu
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Podstawy

Poćwicz samodzielnie: Kompilator R online