Ciclo while
Fa parte della sezione Fondamenti del percorso R di Coddy. Lezione 39 di 78.
Mentre un ciclo for scorre una sequenza predefinita, un ciclo while continua a essere eseguito finché una condizione rimane TRUE. È utile quando non sai in anticipo quante volte devi ripetere qualcosa.
count <- 1
while (count <= 3) {
print(count)
count <- count + 1
}Output:
[1] 1
[1] 2
[1] 3Il ciclo controlla la condizione count <= 3 prima di ogni iterazione. Quando count diventa 4, la condizione è FALSE e il ciclo si interrompe.
Importante: Devi aggiornare la variabile all'interno del ciclo. Senza count <- count + 1, la condizione sarebbe sempre TRUE, creando un ciclo infinito che non termina mai.
total <- 0
num <- 1
while (num <= 5) {
total <- total + num
num <- num + 1
}
print(total)Output:
[1] 15Questo esempio somma i numeri da 1 a 5, ottenendo 15. Il ciclo while è ideale quando il punto di arresto dipende da una condizione anziché da una sequenza fissa.
Sfida
FacileLeggi un numero n dall’input. Usa un ciclo while per calcolare e stampare la somma di tutti i numeri da 1 a n.
Inizia con una variabile per tenere traccia del totale corrente e un’altra variabile come contatore. Continua ad aggiungere al totale finché il contatore è minore o uguale a n, incrementando il contatore a ogni iterazione.
Al termine del ciclo, stampa la somma finale usando print().
Per esempio, se l’input è 5, l’output dovrebbe essere:
[1] 15Questo perché 1 + 2 + 3 + 4 + 5 = 15.
Provalo tu
# Leggi l'input
con <- file("stdin", "r")
n <- as.integer(suppressWarnings(readLines(con, n = 1)))
# Inizializza le variabili
total <- 0
counter <- 1
# TODO: Scrivi qui sotto il tuo ciclo while per calcolare la somma da 1 a n
# Stampa il risultato
print(total)Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti
4Operatori Parte 2
Operatori logici (AND, OR)Operatori logici Parte 2 (NOT)Ripasso - Logica sempliceLogica vettorializzata Parte 1Logica vettorializzata Parte 27Calcolatore per dividere il conto
Messaggio di benvenutoAcquisire input dell'utente10FizzBuzz con una variante
Panoramica del giocoLa funzione FizzBuzz13Vettori: argomenti avanzati
Slicing e indicizzazione dei vettoriIndicizzazione logicaAritmetica dei vettori e ricicloL’operatore %in%2Variabili e tipi di dati
Tipo di dato numericoTipo di dato interoTipo di dato carattereTipo di dato logicoControllo dei tipi di datoConvenzioni di denominazioneValori mancanti: NARiepilogo - Creazione di variabili8Cicli
Ciclo forCiclo whilebreaknext (continue)Riepilogo - FattorialeGenerazione di sequenze (seq, :)Cicli annidatiRiepilogo - Input dinamico3Operatori Parte 1
Operatori aritmeticiDivisione intera e moduloOperatori di assegnazioneRiepilogo - Matematica sempliceOperatori di confronto6I/O di base
Stampare l'outputcat per l'outputOutput con variabiliLeggere l'input con readline()Nozioni di base sulla conversione dei tipiRiepilogo - Calcolatore dell'etàRiepilogo - Vero o falso9Funzioni
Dichiarare una funzioneArgomenti della funzioneValori di ritornoRiepilogo - Funzione SigmaRiepilogo - Funzione di validazioneValori predefiniti dei parametriEsercitati da solo: Compilatore R online