Pessoal quando se cria um laço for dentro loop o laço nunca finalizará certo?
Qual a maneira de se criar um laço for que não fique em loop eterno, criei esse sketch com uma função fora do loop para testes, novamente o laço não finaliza segue.
char teste();
void setup(){
Serial.begin(9600);
}
void loop(){
teste();
}
char teste(){
for(int i=0; i<20; i++){
Serial.println(i);
delay(500);
}
}
}
luisandrade:
Pessoal quando se cria um laço for dentro loop o laço nunca finalizará certo?
Errado.
A funcão loop é chamada ciclicamente. O laco for corre enquanto a condicão desse laco for verdadeira. Quando a condicão deixar de ser verdadeira, o laco salta fora, mas continua a executar a loop().
Se executares isto, vais ver que o laco salta fora e recomeca de novo quando a loop corre de novo.
char teste();
void setup(){
Serial.begin(9600);
}
void loop(){
Serial.println("Iniciar teste");
teste();
}
char teste(){
for(int i=0; i<20; i++){
Serial.println(i);
delay(500);
}
}
}
Verdade me expressei mal , recapitulando, como eu impeço o laço for de inicializar novamente dentro do loop?
Coloca o que queres executar dentro do setup() e deixa loop() vazio
void setup() {
Serial.begin( 9600 );
teste( );
}
void loop() { }
void teste() {
for ( int i = 0; i < 20; i++) {
Serial.println( i );
delay( 500 );
}
}
neuron_upheaval:
Coloca o que queres executar dentro do setup() e deixa loop() vazio
Ou
char NaoQueroCorrerOFor = 0;
...
if (NaoQueroCorrerOFor == 0) {
teste();
NaoQueroCorrerOFor = 1;
}