Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

checaResposta

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.
1 resposta
solução!

Grande Michael! Como vai?

Nesse caso não podemos fazer isso porque o tipo de retorno da função checaResposta() é um INTEIRO, então obrigatoriamente temos que retornar um número inteiro e fazemos isso quando retornamos o valor da variável INDEFINIDO.

Caso a função checaResposta() fosse do tipo void poderíamos utilizar um return "vazio", da mesma forma que ocorre no if (resposta == INDEFINIDO) da função processaRespostaUsuario().

Qualquer dúvida é só dizer.

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software