Loops são um dos elementos mais básicos da pro­gra­ma­ção: eles asseguram que trechos de códigos sejam exe­cu­ta­dos re­pe­ti­da­mente, de acordo com a condição pré-es­ta­be­le­cida. Entre os tipos de loops possíveis está o while loop, usado na linguagem de pro­gra­ma­ção R para repetir a execução de um bloco de código enquanto a condição es­pe­ci­fi­cada for ver­da­deira. Aprenda a usar o R while loop.

Para que serve o R while loop?

O comando while loop em R é usado para executar um bloco de código re­pe­ti­da­mente, res­pei­tando a condição pré-es­ta­be­le­cida. Enquanto a condição for ver­da­deira, ele garante que o bloco de código continue sendo executado.

Loops são vas­ta­mente uti­li­za­dos na linguagem de pro­gra­ma­ção R para realizar iterações em elementos de uma R lista e, em seguida, executar operações in­di­vi­du­ais para cada um desses elementos. Por exemplo, um loop consegue exibir, na sua tela, cada string de uma lista de R strings. Mais es­pe­ci­fi­ca­mente, while loops em R são usados para executar códigos con­di­ci­o­nais. Ainda, loops como o while são con­si­de­ra­dos fun­da­men­tais para a im­ple­men­ta­ção de al­go­rit­mos de ordenação am­pla­mente co­nhe­ci­dos, capazes de ordenar bancos de dados de acordo com critérios de­ter­mi­na­dos.

Sintaxe do R while loop

A sintaxe do R while loop é parecida com a sintaxe de outros comandos while loop de outras lin­gua­gens de pro­gra­ma­ção. No header (cabeçalho) do loop, que deve ser iniciado com a palavra-chave while, você deve es­pe­ci­fi­car os valores da condição entre pa­rên­te­ses. Para que o loop hull possa ser executado, o último valor es­pe­ci­fi­cado deve ser ver­da­deiro — hull nada mais é que o bloco de código entre colchetes, que vem depois do header do loop.

Observe o exemplo abaixo para entender o fun­ci­o­na­mento de um R while loop em um código. Aqui, ele gera valores de 1 a 10:

x <- 1
while (x <= 10) {
    print(x)
    x <- x + 1
}
R

Combinar R while loop e Bubble Sort

Bubble Sort é um dos mais simples e populares al­go­rit­mos de ordenação. Seu papel é comparar elementos de um R vetor ou de um R array e ordená-los em ordem crescente. Combinado ao Bubble Sort, o while loop faz com que o bloco de código seja executado repetidas vezes, até que todos os elementos do vetor ou do array sejam ordenados. O exemplo abaixo ilustra sua aplicação:

bubblesort <- function(x) {
    swapped <- TRUE
    n <- length(x) - 1
    while (swapped) {
        swapped <- FALSE
        for (i in 1:n) {
            if (x[i] > x[i+1]) {
                tmp <- x[i]
                x[i] <- x[i+1]
                x[i+1] <- tmp
                swapped <-TRUE
                }
        }
    }
    return(x)
}
R

Nesse código, criamos uma R função de nome bub­ble­sort. Ela foi inserida para assegurar que o vetor numérico fosse clas­si­fi­cado em ordem crescente. Nesse contexto, o while loop foi utilizado para realizar o processo de troca essencial do Bubble Sort, até que a ordenação fosse concluída.

Encerrar o R while loop

Para encerrar an­te­ci­pa­da­mente um while loop em execução, você deverá usar a palavra-chave break. Ela comanda a in­ter­rup­ção do comando e assegura que este não seja iniciado novamente. No exemplo abaixo, aplicamos o comando break a um while loop em execução, uma vez que a condição pré-definida seguia sendo ver­da­deira:

x <- 10
while (x >= 0) {
    print(x)
    if (x == 5) {
        break
        }
        x <- x - 1
}
R

O loop acima foi criado com o objetivo de gerar números de 10 a 5. Assim, quando a variável x atingiu o valor 5, a condição if foi executada e o loop foi encerrado an­te­ci­pa­da­mente pela de­cla­ra­ção break.

Outros R loops

O R while loop não é o único tipo de loop da linguagem de pro­gra­ma­ção R. O for loop, por exemplo, é con­si­de­rado um loop de contagem. O repeat loop, por sua vez, é usado para executar um código infinitas vezes, in­de­pen­den­te­mente do aten­di­mento da condição. Para encerrar um repeat loop, você deve usar a palavra-chave break. Do contrário, ele con­ti­nu­ará sendo executado.

R for loop

O comando em R for loop deve ser usado quando o número de iterações for conhecido — número ex­pli­ci­tado no header do loop. O exemplo abaixo executa um for loop usado para criar valores de 1 a 5:

for (z in 1:5) {
print(i)
}
R

R repeat loop

Na linguagem de pro­gra­ma­ção R, o comando repeat loop é usado para executar um código infinitas vezes, in­de­pen­den­te­mente do aten­di­mento da condição. Se você sabe o básico sobre pro­gra­ma­ção, já deve estar fa­mi­li­a­ri­zado com o do-while loop de outras lin­gua­gens, como de Java. Em R, o comando do-while, que assegura a execução de um bloco de código pelo menos uma vez, não existe. O repeat loop, en­tre­tanto, consegue substituí-lo, como mostra o exemplo:

x <- 1
repeat {
    print(x)
    if (x >= 10) {
        break
        }
x <- x + 1
}
R

Esse código tem o objetivo de criar números de 1 a 10. Para que fosse executado pelo menos uma vez (como faria o do-while em outras lin­gua­gens), o comando foi inserido antes da de­cla­ra­ção if que, em conjunto com o break, encerra o loop se a condição es­pe­ci­fi­cada for ver­da­deira.

Ir para o menu principal