O C# possui sete estruturas de controle (if, switch, while, do-while, for, foreach e goto), que servem para controlar o fluxo de execução dos programas, através de operações lógicas, como: igual, diferente, maior, maior ou igual, menor e, menor ou igual. Essas estruturas podem ser divididas em três categorias: relacionais, repetição e “espaguete”.
Operadores relacionais
Os operadores relacionais são símbolos que servem para realizar operações lógicas (ou comparações). São eles: == (igual), != (diferente), > (maior), >= (maior ou igual), < (menor) e <= (menor ou igual). Há também os operadores booleanos, que servem para conectar duas comparações: && (e) e || (ou). Exemplo:
byte r = 82;
if (r == 82)
{
Console.WriteLine("O valor de r é igual a 82.");
}
else if (r > 80 && r < 90)
{
Console.WriteLine("O valor de r é um número entre 80 e 90.");
}
else if (r > 80 || r < 90)
{
Console.WriteLine("O valor de r é um número maior que 80 ou menor que 90.");
}
Deve-se lembrar que o operador relacional igual é representado por dois sinais de igual (==), e não apenas um, como em uma atribuição.
O operador && (e) serve para indicar que a operação lógica só será verdadeira se ambas as comparações forem verdadeiras. Já o operador || (ou) serve para indicar que a operação lógica será verdadeira se pelo menos uma comparação for verdadeira.
Tente escolher outro valor (de 0 a 255) para a variável r, para ver o que acontece. O uso dos comandos if e else é explicado a baixo.
Estruturas relacionais: if e switch
Há duas estruturas relacionais (ou condicionais) em C#: if e switch. Elas mudam o fluxo do programa, a partir de operações lógicas.
Estrutura if
A estrutura if é a mais básica. Ela executa uma seção do código apenas se a condição for válida. Exemplo:
byte r = 82;
if (r == 82)
{
Console.WriteLine("Olá, Mundo!");
}
Console.ReadLine();
O exemplo acima irá verificar se o valor da variável r é igual a 82. Se for, irá exibir a mensagem “Olá, Mundo!”.
Pode haver uma exceção, a else, que irá executar apenas se a condição anterior for falsa. Exemplo:
byte r = 83;
if (r == 82)
{
Console.WriteLine("Olá, Mundo!");
}
else
{
Console.WriteLine("Tchau, Mundo!");
}
Console.ReadLine();
O exemplo acima irá verificar se o valor da variável r é igual a 82. Se for, irá exibir a mensagem “Olá, Mundo!”, senão for, irá exibir a mensagem “Tchau, Mundo!”.
A exceção pode ser mais específica, combinando-a com uma outra condição. Exemplo:
byte r = 84;
if (r == 82)
{
Console.WriteLine("Olá, Mundo!");
}
else if (r == 83)
{
Console.WriteLine("Tchau, Mundo!");
}
else
{
Console.WriteLine("Até logo, Mundo!");
}
Console.ReadLine();
O exemplo acima irá verificar se o valor da variável r é igual a 82. Se for, irá exibir a mensagem “Olá, Mundo!”, senão, se for igual a 83, irá exibir a mensagem “Tchau, Mundo!”, senão irá exibir a mensagem “Até logo, Mundo!”.
Pode haver quantas condições for necessário, pode haver também uma condição dentro de outra. Exemplo:
byte r = 84;
if (r == 82)
{
Console.WriteLine("Olá, Mundo!");
}
else
{
if (r == 83)
{
Console.WriteLine("Tchau, Mundo!");
}
else
{
Console.WriteLine("Até logo, Mundo!");
}
}
Console.ReadLine();
Se houver apenas uma ação à tomar caso a condição seja verdadeira, então as chaves ({ e }) são opcionais. Exemplo:
byte r = 84;
if (r == 82)
Console.WriteLine("Olá, Mundo!");
else
{
if (r == 83)
Console.WriteLine("Tchau, Mundo!");
else
Console.WriteLine("Até logo, Mundo!");
}
Console.ReadLine();
Estrutura switch
A estrutura switch é semelhante a if, com a diferença que a operação lógica só pode ser a de igual. Exemplo:
byte r = 84;
switch (r)
{
case 82:
Console.WriteLine("Olá, Mundo!");
break;
case 83:
Console.WriteLine("Tchau, Mundo!");
break;
default:
Console.WriteLine("Até logo, Mundo!");
break;
}
Console.ReadLine();
O exemplo acima irá verificar se o valor da variável r é igual a 82. Se for, irá exibir a mensagem “Olá, Mundo!”, senão, se for igual a 83, irá exibir a mensagem “Tchau, Mundo!”, senão irá exibir a mensagem “Até logo, Mundo!”.
O comando default
é opcional, e serve como uma ação padrão a ser executada, caso nenhuma condição seja verdadeira. O comando break serve para delimitar a condição anterior.
Estrutura “espaguete”: goto
Há uma estrutura “espaguete” em C#: goto. Ela muda o fluxo do programa, avançando ou retrocedendo (não desfaz nada) no código, sem a necessidade de uma operação lógica prévia. É chamada de estrutura espaguete porque faz “reviravoltas” no código, fazendo com que fique difícil de saber onde o programa termina, assim como um emaranhado de espaguete. Ela foi primeiro introduzida na linguagem BASIC, e sempre seu uso foi condenado por muitos críticos. Sua aplicação é bastante simples:
goto marca1;
Console.WriteLine("Olá, Mundo!");
marca1:
Console.WriteLine("Tchau, Mundo!");
Console.ReadLine();
O código acima irá exibir a mensagem “Tchau, Mundo!”, enquanto que o resto do código será pulado. Demarca-se uma área usado seu nome seguido de dois pontos (:).
1 comentários:
muito bom ^^
Postar um comentário