Gostaria de saber porque não poderíamos simplesmente colocar um return que não retornaria nada em vez de retornar o valor INDETERMINADO ao final da função checaResposta.
int checaResposta() {
if (digitalRead(botVerde1) == LOW) {
return piscaLed(ledVerde1);
}
if (digitalRead(botAmarelo) == LOW) {
return piscaLed(ledAmarelo);
}
if (digitalRead(botVermelho) == LOW) {
return piscaLed(ledVermelho);
}
if (digitalRead(botVerde2) == LOW) {
return piscaLed(ledVerde2);
}
return; //Essa parte do código que estava me referindo
}
Assim em checaRespostaJogador não precisaríamos fazer o tratamento
void processaRespostaUsuario() {
int resposta = checaResposta();
if (resposta == INDEFINIDO) {
return;
}
if (resposta == sequenciaLed[ledsRespondidos]) {
ledsRespondidos++;
} else {
Serial.println("Resposta errada");
rodada = tamanhoSequencia + 2;
}
delay(500);
}
Tentei fazer isso e deu o sequinte erro, mesmo que no final ele completou a compilação, gostaria de saber o motivo.
C:\Users\Irene\Documents\Arduino\teste\teste.ino: In function 'int checaResposta()':
C:\Users\Irene\Documents\Arduino\teste\teste.ino:178:3: warning: return-statement with no value, in function returning 'int' [-fpermissive]
return;
^~~~~~
O sketch usa 3326 bytes (10%) de espaço de armazenamento para programas. O máximo são 32256 bytes.
Variáveis globais usam 292 bytes (14%) de memória dinâmica, deixando 1756 bytes para variáveis locais. O máximo são 2048 bytes.