Pular para conteúdo

Quiz 03 - Introdução

1. **O `if` no Rust é considerado uma:**
Instrução (Statement)
Expressão (Expression)
Função
Variável > **Explicação**: Como é uma expressão, o `if` pode retornar um valor.
2. **Qual a principal característica do `match` no Rust?**
É opcional tratar todos os casos
É exaustivo (todos os casos devem ser tratados)
É idêntico ao `switch` do C
Só funciona com números inteiros > **Explicação**: O compilador garante que você não esqueça nenhum caminho possível no `match`.
3. **Para que serve o padrão `_` no `match`?**
Para ignorar erros
Para criar um loop infinito
Como um caso padrão (catch-all) para qualquer valor não listado
Para deletar a variável > **Explicação**: O `_` captura todos os valores remanescentes.
4. **Qual loop é usado para repetições infinitas até um `break`?**
`while`
`for`
`loop`
`repeat` > **Explicação**: O `loop` executa para sempre até encontrar um comando de saída.
5. **Podemos retornar um valor a partir de um `loop`?**
Sim, usando `break` seguido do valor
Não, loops não retornam valores
Apenas se usarmos a macro `return!`
Somente em loops `while` > **Explicação**: O `break valor;` termina o loop e retorna o resultado.
6. **Qual a forma preferida de iterar sobre uma coleção no Rust?**
Loop `while` com um contador de índice
Loop `for`
Loop `loop` manual
Recursão > **Explicação**: O `for` é mais seguro e evita erros de acesso fora do índice (out-of-bounds).
7. **O que o comando `continue` faz?**
Sai do loop atual
Reinicia o programa
Pula para a próxima iteração do loop
Pausa a execução por 1 segundo > **Explicação**: Ele interrompe a iteração atual e volta ao início do loop.
8. **No `if`, a condição deve ser obrigatoriamente do tipo:**
i32
String
bool
Option > **Explicação**: Rust não converte tipos automaticamente para booleano (ex: `if 1` não funciona).
9. **Qual a sintaxe correta para um range no `for` que inclui o número final?**
`1..10`
`1..=10`
`1...10`
`1:10` > **Explicação**: O operador `..=` cria um range inclusivo.
10. **O que acontece se um `match` não cobrir todos os valores possíveis de um Enum?**
O programa dá panic em tempo de execução
O Rust escolhe um valor aleatório
O código não compila
O caso faltante é ignorado silenciosamente > **Explicação**: A exaustividade é verificada em tempo de compilação.