Tipos de Operadores do C#

Neste artigo veremos os conceitos e exemplos com os Operadores da linguagem C#

Neste artigo veremos os conceitos e exemplos com os Operadores da linguagem C#. Começaremos com os operadores de atribuição, aritméticos e aritméticos de atribuição reduzida.

Os operadores indicam o tipo de operação que será executada, gerando assim novos valores a partir de um ou mais operandos (itens à direita ou à esquerda do operador). Geralmente, o resultado é do tipo booleano (boolean) ou numérico (int, decimal, double). É importante sabermos como usá-los e é isso que vamos aprender a partir de agora.

Operador de Atribuição

O símbolo igual (=) representa a atribuição de um valor à uma variável, onde ela e o valor atribuído devem obrigatoriamente ser de tipos compatíveis, ou seja, uma variável do tipo int por exemplo não pode receber um valor do tipo string (a menos que usemos as conversões, mas vamos deixar isso mais para frente).

Veja a sintaxe: variável = atribuição;

A Listagem 1 deixa tudo mais claro (feito dentro do método Main, em uma Console Application).

//variável idade recebe o valor 21 int idade = 21; //declaro variável maiorIdade como boolean bool maiorIdade; //exibe ambos em tela, atribuindo valor ao booleano Console.WriteLine("\n" + idade + "\n"); Console.WriteLine(maiorIdade = true); Console.ReadKey();
Listagem 1. Operadores de Atribuição

O resultado do código acima é o seguinte:

Podemos também atribuir uma variável primitiva a outra variável primitiva. Veja no exemplo da Listagem 2.

int a = 10; int b = a;
Listagem 2. Atribuição de variáveis

Assim, temos duas situações: primeiro a recebe o valor 10, depois b recebe a variável a. Portanto, podemos dizer que a variável b contém o valor 10.

Os conceitos acima são de Tipos por Valor e por Referência.

Operadores Aritméticos

Os operadores aritméticos descritos na Tabela 1 são os mesmos usados em cálculos matemáticos.

Operador Aritmético Descrição
+ Adição
- Subtração
* Multiplicação
/ Divisão
% Módulo (resto da divisão)
Tabela 1. Operadores aritméticos

Veja na Listagem 3 o exemplo com o uso dos cinco operadores da tabela.

int a = 5, b = 10, c = 15, d = 20; // declaramos quatro variáveis do tipo int Console.WriteLine(a + d); // operação de soma Console.WriteLine(c - a); // operação de subtração Console.WriteLine(b * c); // operação de multiplicação Console.WriteLine(d / b); // operação de divisão Console.WriteLine(c % b); // operação de módulo (resto de divisão) Console.ReadKey();
Listagem 3. Operadores aritméticos

No código acima realizamos as operações aritméticas:

e em cada operação temos como resultado um valor inteiro que será exibido no prompt de comando.

O resultado do código acima é o seguinte:

Ordem de operações matemáticas

Em uma expressão matemática existe uma ordem para executar as operações. A linguagem C# respeita esta ordem em que as operações de multiplicação e divisão serão executadas antes de operações de soma e subtração. A ordem pode ser forçada pelo uso de parênteses. Por exemplo, se colocarmos uma soma entre parênteses ela será executada antes de uma multiplicação em uma mesma expressão. Veja dois exemplos na Listagem 4.

int a = 5, b = 10, c = 15, d = 20; Console.WriteLine(a + b * c); // a operação de multiplicação será executada primeiro Console.WriteLine((a + b) * c); // a operação de soma será executada primeiro porque está entre parênteses Console.ReadKey();
Listagem 4. Ordem de operações matemáticas

No código acima temos as operações:

a primeira operação segue a ordem de precedência e a segunda operação força a ordem com parênteses.

Operadores Aritméticos de Atribuição Reduzida

Esses operadores são usados para compor uma operação aritmética e uma atribuição, conforme é descrito na Tabela 2.

Operador Aritmético Descrição
+ = mais igual
- = menos igual
* = vezes igual
/ = dividido igual
% = módulo igual
Tabela 2. Operadores Aritméticos de Atribuição Reduzida

Na Listagem 5 é acrescentado o valor 10 a variável x.

int x = 5; x += 5; // é a mesma coisa que x = x + 5 Console.WriteLine("Valor do x = " + x); Console.ReadKey();;
Listagem 5. Exemplo de Operadores Aritméticos de Atribuição Reduzida

O resultado do código acima é o seguinte:

Devemos usar operadores de atribuição desta forma, como boa prática, já que é implementado de uma forma mais eficiente pelo compilador, e ainda temos a economia de código.

Operadores incrementais e decrementais

Os operadores incrementais e decrementais têm a função de aumentar ou diminuir exatamente em 1 o valor de uma variável. Eles podem ser pré ou pós incremental e pré ou pós decremental. Veja os conceitos de cada um deles e um exemplo prático a seguir:

Como prometido, veja o exemplo na LIstagem 6.

Console.WriteLine("Pré-Incremento:\n"); int x = 0; Console.WriteLine("x = " + x); Console.WriteLine("\n++x +20 = \n"); Console.WriteLine(++x +20 + "\n"); Console.WriteLine("\nPós-Incremento:\n"); x = 0; Console.WriteLine("\nx++ +20 = \n"); Console.WriteLine(x++ + 20 + "\n"); Console.WriteLine("\nPré-Decremento:\n"); x = 0; Console.WriteLine("x = " + x); Console.WriteLine("\n--x +20 = \n"); Console.WriteLine(--x + 20 + "\n"); Console.WriteLine("\nPós-Decremento:\n"); x = 0; Console.WriteLine("\nx-- +20 = \n"); Console.WriteLine(x-- + 20 + "\n"); Console.ReadKey();
Listagem 6. Exemplo de pré-incremento

Após a compilação, esse será o resultado:

Dica: use o Breakpoint no código acima, assim você pode ver passo-a-passo todo o processo de incremento e decremento da variável x.

Operadores Relacionais

Os operadores relacionais comparam dois valores e retornam um valor booleano (true ou false). Veja na Tabela 3 esses operadores.

Operador Relacional Descrição
== Igual a
!= Diferente de
> Maior que
< Menor que
>= Maior do que ou igual a
<= Menor do que ou igual a
Tabela 3. Operadores relacionais

O exemplo da Listagem 7 ajuda a ilustrar o uso destes operadores.

int a = 10, b = 25, c = 50, d = 100; // declaramos quatro variáveis de tipo int Console.WriteLine(a == d); // avaliamos a igualdade entre a e d Console.WriteLine(b != c); // avaliamos a desigualdade entre b e c Console.WriteLine(a > b); // avaliamos se a é maior que b Console.WriteLine(c < d); // avaliamos se c é menor que d Console.WriteLine(c >= a); // avaliamos se c é maior ou igual que a Console.WriteLine(d <= b); // avaliamos se d é menor ou igual que b Console.ReadKey();
Listagem 7. Exemplo de operadores relacionais

No código acima fazemos as seguintes avaliações:

e a cada avaliação teremos um resultado do tipo lógico true ou false que será exibido no prompt de comando.

Após compilarmos o código acima, o resultado é esse:

Operadores Lógicos

Os operadores lógicos trabalham como operandos booleanos e seu resultado também será booleano (true ou false). Eles são usados somente em expressões lógicas, e são descritos na Tabela 4.

Operador Lógico Descrição
&& AND = E
|| OR = Ou
! NOT = Não
Tabela 4. Operadores lógioos

Assim, em um teste lógico usando o operador && (AND), o resultado somente será verdadeiro (true) se todas as expressões lógicas forem avaliadas como verdadeiras.

Já, se o operador usado for o || (OR), basta que apenas uma das expressões lógicas seja verdadeira para que o resultado também seja verdadeiro.

Completando, o operador lógico ! (NOT) é usado para gerar uma negação. Desta forma, é invertida toda a lógica da expressão.

Veja o exemplo na Listagem 8 e o resultado em seguida.

int a = 5, b = 10, c = 15, d = 20; // declaramos quatro variáveis do tipo int Console.WriteLine(a == 5 && d == 10); // avaliamos se a é igual a 5 e se d é igual a 10 Console.WriteLine(c < b || d == 20); // avaliamos se c é menor que b ou se d é igual a 20 Console.WriteLine(! (b > a)); // negamos que b é maior que a Console.ReadKey();
Listagem 8. Exemplo de operadores lógicos

No código acima fazemos as avaliações:

e a cada avaliação o resultado será do tipo lógico, true ou false que será exibido no prompt de comando.

O resultado pode ser visto a seguir:

Operadores Ternários

O operador ternário é composto por três operandos separados pelos sinais ? e : e tem o objetivo de atribuir o valor a uma variável de acordo com o resultado de um teste lógico. A sintaxe dele é: teste lógico ? valor se verdadeiro : valor se falso;

Onde:

Finalizando, veja o exemplo na Listagem 9 e o resultado em seguida.

int x = 5, y = 10; // declaradas duas variáveis de tipo int Console.WriteLine(x < y ? "sim" : "não"); // expressão x < y é avaliada // se for verdadeira exibe "sim" // se não for verdadeira exibe "não" Console.ReadKey();
Listagem 9. Exemplo de operadores ternários

No código acima avaliamos se o valor da variável x é menor do que o valor da variável y (x < y) e se for menor será exibido o texto "sim" e se não for menor será exibido o texto "não".

O resultado é apresentado a seguir:

Espero que tenha aproveitado o conteúdo. Bons códigos!

Artigos relacionados