-
Notifications
You must be signed in to change notification settings - Fork 0
Condicionais e loops
Seguem uma das três formas:
se condicao:
corpo()
fim
se condicao? // também é válido usar ? no lugar de :
corpo()
senao:
corpo_senao()
fim
se condicao1():
corpo1()
senao se condicao2():
corpo2()
senao se condicao3():
corpo3()
senao:
corpo_senao()
fim
Este é semelhante ao loop "for" em C, mas cada termo aceita apenas uma instrução:
Serial.begin(115200)
delay(1000)
Serial.println("Vou contar de 0 até 10 exclusivamente")
contar i = 0 , i < 10, i ++:
// i é declarado implicitamente dentro do
// corpo do "contar".
Serial.println(i)
delay(500)
fim
Este loop sempre é inclusivo. Ele aceita dois extremos:
Serial.begin(115200)
delay(1000)
Serial.println("Vou contar de 0 até 10 inclusivamente")
para cada i de 0 ..10:
// i é declarado implicitamente dentro do
// corpo do "contar".
Serial.println(i)
delay(500)
fim
Percorre os valores de algum vetor.
Forma imutável (você não pode alterar os valores do vetor)
float numeros = [1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.91,9.12,12.34]
Serial.begin(115200)
delay(1000)
Serial.println("Vou percorrer o vetor numeros")
para cada n de numeros:
Serial.println(n)
delay(500)
fim
Forma mutável (você pode alterar os valores do vetor)
float numeros = [1.23,2.34,3.45,4.56,5.67,6.78,7.89,8.91,9.12,12.34]
Serial.begin(115200)
delay(1000)
Serial.println("Vou percorrer o vetor numeros")
para cada # n de numeros:
// percorre o vetor multiplicando cada elemento por 10
{n} *= 10
fim
para cada n de numeros:
Serial.println(n)
delay(500)
fim
Especificando um nome de variável a mais, o loop para cada de ... se torna equivalente ao for key,value in ... : em Python mas não muito, porque internamente o o loop para cada de ... usa apenas uma array simples.
para cada indice, n de numeros:
Serial.print(indice)
Serial.print(" => ")
Serial.println(n)
delay(500)
fim
Equivalente direto do loop while.
enquanto condicao():
corpo_do_loop()
fim
repetir:
corpo_do_loop()
ate condicao()
Equivale a enquanto 1: ... fim.
loop:
fazer_algo_eternamente()
fim
A instrução sair termina a execução de um loop.
Serial.begin(115200)
delay(1000)
loop:
sair
fim
Serial.println("Escapei do loop infinito!")
A instrução continue ou proximo pula para a próxima iteração de um loop.
Serial.begin(115200)
loop:
delay(1000)
Serial.println("Isso é escrito na serial.")
proximo
Serial.println("Isso nunca será escrito na serial.")
fim
Útil para escapar de dentro de um loop profundo e mais nada. Deve ser usado criteriosamente.
Serial.begin(115200)
int x = 0
@comeco:
x++
Serial.print(x)
Serial.print(" => ")
Serial.println("Olha eu aqui!")
delay(1000)
pular @comeco