Carregando...

if e else

bool ready = true; guarda a palavra true. Depois if (ready) olha essa palavra e executa um grupo de linhas. Quando ready é true, Console.WriteLine("pass") escreve pass. Quando ready é false, o grupo else roda e escreve wait. A tela é uma linha. Mantenha a classe pública com o nome Pine.

Um bool decide qual bloco roda

Abra o arquivo Pine. O nome da classe continua Pine. Esta página não renomeia o tipo. Apague bool both se essa linha ainda estiver lá, incluindo true && true, true || false, !true, e qualquer sinal de combinação entre duas palavras true ou false. Apague bool match se essa linha ainda estiver lá. Apague int total se essa linha ainda estiver lá. Apague qualquer linha ReadLine. O arquivo que você guarda não espera digitação, não tem both, não tem match, e não tem escrita nua de uma palavra combinada sozinha. A tela só é escrita por uma linha de escrita dentro das chaves escolhidas.

Dentro de Main, guarde um bool antes de escolher um caminho: bool ready = true;. bool é a palavra de tipo. ready é o nome, e começa com r minúsculo. Não há aspas em volta de true. O ponto e vírgula termina a linha de guardar. Essa linha não escreve a tela. Depois vem a escolha:
if (ready) {
Console.WriteLine("pass");
} else {
Console.WriteLine("wait");
}
A palavra if é minúscula: i, depois f. Não é um nome que você inventa. Espaço depois de if é permitido; if(ready) sem espaço também compila. Dentro dos parênteses fica o nome ready — sem aspas, sem ==, sem &&. Quando ready guarda true, o C# entra no primeiro par de chaves e executa Console.WriteLine("pass");. As aspas em volta de pass marcam letras para a tela. Essas letras — p, a, s, s — são o que você deve ver, uma linha. O bloco else é pulado por completo nesta execução. Salve o arquivo.

O arquivo que você guarda

Mantenha esta forma de ensino. Uma palavra de tipo, bool. Um nome, ready, guardado como true. Um if com parênteses em volta de ready. Uma linha de escrita que escreve pass dentro das primeiras chaves. Um else com uma linha de escrita que escreve wait. Não há linha both, nem linha match, nem escrita da palavra nua true fora das chaves.

ready is true

csharp
using System;

public class Pine
{
    public static void Main()
    {
        bool ready = true;
        if (ready)
        {
            Console.WriteLine("pass");
        }
        else
        {
            Console.WriteLine("wait");
        }
    }
}

Leia de cima. using System; prepara nomes curtos. public class Pine nomeia o tipo. public static void Main() é onde o runtime começa. bool ready = true; guarda true. Não escreve nada. if (ready) pergunta se aquela palavra guardada é true. É, então Console.WriteLine("pass"); roda. As chaves do else são puladas. Uma linha na tela: pass. Sem aspas na tela. Sem segunda linha. Não há linha bool both no arquivo que você guarda.

Execute com dotnet run. O programa escreve pass. Não espera você digitar. A palavra guardada e a escolha já estavam no arquivo. Se dotnet run esperar, ReadLine ainda está no arquivo. Apague essa linha e mantenha bool ready = true; e o if / else acima. O programa termina depois da linha de escrita escolhida. A tela mostra pass. Uma linha. Se a tela mostrar true, você ainda está escrevendo o próprio bool, ou uma combinação da página lógica ainda está em Main. Troque isso por Console.WriteLine("pass") dentro das chaves do if quando ready é true. Se a tela mostrar wait, ready é false, que é o segundo arquivo desta página, não o arquivo que você guarda. Se a tela mostrar if (ready) como letras, uma linha de escrita tem aspas em volta desses caracteres. Você não reinstala o SDK .NET por uma tela que mostra a linha errada.

Por que pass e não wait? Porque o teste nos parênteses era true. O C# não escreve a palavra true nesta execução. Escreve a linha de escrita que roda dentro das chaves escolhidas. Pense em três trabalhos: parênteses guardam o teste, chaves agrupam as linhas que pertencem juntas, e Console.WriteLine é a única parte que escreve na tela. Uma tela que mostra pass não prova sozinha o if. Procure if (ready) e as chaves no arquivo. Não julgue o arquivo só pela tela.

Quando ready é false

Mude só o valor guardado: bool ready = false;. Deixe a estrutura if / else como está. Agora o teste falha, então o C# pula as primeiras chaves e executa as chaves do else. A tela deve mostrar wait, uma linha.

ready is false

csharp
using System;

public class Pine
{
    public static void Main()
    {
        bool ready = false;
        if (ready)
        {
            Console.WriteLine("pass");
        }
        else
        {
            Console.WriteLine("wait");
        }
    }
}

Este é o segundo arquivo. Não é o arquivo que você guarda. Execute dotnet run. A tela mostra wait. Uma linha. Não mostra pass. Não mostra false como palavra da tela, a menos que você escreva essa palavra de propósito. Se a tela mostrar pass, você ainda está no arquivo que guarda, onde ready é true. Depois de ver wait, coloque de volta o arquivo guardado: bool ready = true; e o mesmo if / else que escreve pass no caminho true. As duas versões são C# válido. Ensinam a mesma forma if / else com testes opostos.

Leia a execução false mais uma vez em ordem. ready guarda false. if (ready) é perguntado. A resposta é false, então cada linha entre o primeiro { e o } correspondente é pulada — incluindo Console.WriteLine("pass");. O controle continua em else. As linhas entre as chaves do else rodam, então Console.WriteLine("wait"); executa. Uma linha na tela. Sem segunda linha. A própria palavra false nunca aparece a menos que você a escreva de propósito.

Regras que mantêm a escolha clara

Parênteses em volta do teste são obrigatórios. Escrever if ready { … } sem parênteses faz o build escrever um erro. O teste nesta página é um bool: um nome como ready, ou as palavras nuas true ou false sem aspas. if ("true") coloca letras onde um teste bool deve ficar; o build escreve um erro. Tire as aspas, ou continue usando um nome bool. Um inteiro sozinho como if (1) não é como esta lição guarda prontidão; fique com true, false, ou um nome bool.

Chaves importam para ler a lição. Esta página sempre envolve cada caminho em { }. O C# permite um if de uma linha sem chaves, mas no momento em que você adiciona uma segunda linha sob esse if, só a primeira linha permanece ligada ao teste a menos que haja chaves. Iniciantes perdem esse detalhe com facilidade. Mantenha chaves nos dois demos para cada caminho ficar óbvio: uma chave de abertura depois do teste, uma chave de fechamento antes de else, depois outro par para else.

else pertence a um if. Um else sozinho faz o build escrever um erro. Nesta página um if tem um else. Você pode escrever if sem else quando só se importa com o caminho true; o arquivo que você guarda ainda mostra os dois lados para você ver a bifurcação. Escolher entre vários valores fixos é switch numa página seguinte — não invente um terceiro ramo com outro else aqui.

Você também pode escrever o teste sem um nome separado: if (true) { … } else { … }. Isso compila e roda. Os demos usam ready para você ver um bool guardado conduzindo a escolha, que é como os programas parecem depois que você já sabe guardar true e false. Comparações como if (score > 10) vêm depois que você estiver confortável com esta bifurcação true / false; esta página mantém o teste como um valor bool que você já entende.

📊 ready and the screen

ready Screen
true pass
false wait

Use a tabela como checagem depois de uma execução, não no lugar dela. true com o arquivo que você guarda escreve pass. false com o segundo arquivo escreve wait. Se as duas linhas de escrita rodarem de algum jeito, as chaves ou o pareamento if / else estão errados — corrija a estrutura em vez de reinstalar o SDK .NET.

Uma confusão comum é escrever a própria sintaxe: Console.WriteLine("if (ready)");. Isso escreve os caracteres if (ready). Não escolhe um caminho. Outra confusão é deixar demos de && ou == no mesmo Main e se perguntar por que a tela mostra true em vez de pass. O Main desta sessão deve guardar só o bool e o if / else.

Agora você pode guardar um bool, colocá-lo em if (…), e dar a cada resultado seu próprio bloco com chaves. Quando o teste é true, uma linha de escrita roda; quando é false, a linha de escrita do else roda. A página seguinte é switch, onde vários valores fixos recebem cada um o seu case em vez de uma única bifurcação true / false.

A tela é o caminho escolhido

O arquivo que você guarda escreve pass. O nome ready está nos parênteses, e ready não está na tela. A palavra true está na linha de guardar, e true não está na tela. O caminho else está no arquivo, e não roda na execução guardada. Aspas em volta de if (ready) escrevem letras, não um caminho escolhido.

🧠 Teste Seu Conhecimento

Pronto para Começar

Teste Seu Conhecimento

Desafie-se com este questionário interativo e veja o quão bem você entende o tópico

❓
5
Perguntas
🎯
70%
Para Passar
♾️
∞
Tempo
🔄
∞
Tentativas

📝 Instruções

  • Leia cada pergunta cuidadosamente
  • Selecione a melhor resposta para cada pergunta
  • Você pode refazer o quiz quantas vezes quiser
  • Seu progresso será mostrado no topo