terça-feira, 29 de maio de 2018

Curso De C# para Iniciantes - Fundamentos CSharp Atribuição, incremento ...



Curso De C# para Iniciantes - Fundamentos CSharp Atribuição, incremento ...



Curso De C# para Iniciantes - Fundamentos CSharp Atribuição, incremento ...

  

No ultimo artigo da série aprenda
C# vimos como é a cara de um programa escrito em C#, como configurar nossas variáveis
de ambiente, como compilar um programa usando o compilador de linha de comando (‘csc.exe’),
os tipos de dados básicos da linguagem, o que são funções e rotinas, o que são variáveis
e constantes e ainda aprendemos sobre conversões. Para maiores informações veja:








Introdução




Neste terceiro artigo da série aprenda
C# aprenderemos sobre os operadores da linguagem, são eles:

·
Operadores
aritméticos
·
Operadores de atribuição
·
Operadores relacionais
·
Operadores
lógicos

E ainda vamos ver o que é precedência
de operador, prefixo e sufixo.

Operadores aritméticos



Em C# temos os seguintes operadores
aritméticos:

Operador Descrição
+
(Adição)
-
(Subtração)
*
(Multiplicação)
/
(Divisão)
%
(Resto/Módulo)


Dos cinco operadores citados acima
os três primeiros trabalham da maneira que nós já conhecemos (Adição, Subtração
e Multiplicação), já o operador de Divisão ‘/’ trabalha de maneira diferente na
divisão de um inteiro, por exemplo, quando dividimos 11 por 2 usando esse operador
(sendo 11 um inteiro) o resto da divisão é descartado, pois os inteiros não aceitam
numeros fracionários, ou seja, o resultado seria 5. Já o operador ‘%’ tem como sua
única função pegar o resto de uma divisão usando o mesmo exemplo dividindo 11 por
2 usando o operador ‘%’ modulo o resultado seria 1, já que é o resto da divisão.

Agora vamos fazer um pequeno exercício
para praticar os conceitos aprendidos, veja:



using System;


class OperadoresAritmeticos

{


public static void

Main
()

{

int soma = 0, diferenca=0, produto=0, resto=0;




double divisao=0;
// resultado da divisão


int num1 = 10,
num2 = 2;







soma
= num1 + num2;




diferenca
= num1 - num2;




produto
= num1 * num2;




divisao
= num1 / num2;





// resto de 3/2


resto
= 3 % num2;





Console.WriteLine("num1 = {0}, num2 = {1}", num1,
num2);


Console.WriteLine();





Console.WriteLine("Soma de {0} e {1} é {2}", num1, num2, soma);


Console.WriteLine("Diferença de {0} e {1} é {2}",
num1, num2, diferenca);


Console.WriteLine("Produto de {0} e {1} é {2}", num1, num2, produto);


Console.WriteLine("Quociente de {0} e {1} é {2}",
num1, num2, divisao);


Console.WriteLine();


Console.WriteLine("resto de 3 quando é dividido
por {0} é {1}", num2, resto);

}
}
O exemplo acima embora simples faz
uso de todos os operadores aritméticos, como você já viu no artigo passado o método
‘WriteLine’ da classe ‘Console’ apenas
mostra uma mensagem na tela, veja a seguinte linha de código:

Console.WriteLine("Soma de {0} e {1} é {2}", num1, num2,
soma);


Você deve estar se
perguntando o que significa esses ‘{0}, {1} e {2}’, isso serve para nós dizermos
ao programa onde se encontra o valor da variavel nessa string, ou seja, ‘{0}’ será
substituído por ‘num1’, ‘{1}’ será substituído por ‘num2’ e ‘{2}’ será substituído
por ‘soma’.



Operadores de atribuição




Em C# temos os seguintes
operadores de atribuição:



Operador
Descrição


=
(Atribuição simples)
+=
(Atribuição aditiva)
-=
(Atribuição Subtrativa)
*=
(Atribuição Multiplicativa)
/=

(Atribuição de divisão)
%=
(Atribuição de módulo)



Um operador de atribuição serve
justamente para atribuirmos um valor a uma variável, veja:

x = 5;



Ou seja, simplesmente
atribuímos o valor
5 a
variável x usando o operador de atribuição simples ‘=’.



Outro exemplo:



int num1=10, num2=2;
num1 += num2;



Primeiro atribuímos o valor
10 a
variável num1 e o valor
2
a
variável num2, na segunda linha atribuímos o valor de num2 a variável num1 com o
operador de atribuição ‘+=’, que valor terá num1 agora?

Neste caso ‘num1’ terá o valor atribuído
igual a 12, pois seria o mesmo que:

int num1=10, num2=2;
num1 = num1 + num2;



O mesmo é valido para
os outros operadores, exemplo:






int num1=10, num2=2;
num1 -= num2;



O que seria o mesmo
que:



int num1=10, num2=2;
num1 = num1 - num2;



Neste caso usamos o
operador ‘-=’ e o resultado de num1 seria 8,
e assim por diante.






Operadores relacionais




Em C# temos os seguintes
operadores relacionais:



Operador
Descrição




==
(Igualdade)
>
(Maior)
<
(Menor)
<=
(Menor igual)
>=
(Maior igual)
!=
(Diferente)



Uma expressão relacional
sempre retorna um valor Booleano, ou seja, verdadeiro ou falso, por exemplo:



Definindo duas variáveis



int num1 = 2, num2
= 5;



Então,






num1 == num2  
    // falso
num1 != num2   
    // verdadeiro
num1 > num2  // falso
num1 < num2  // verdadeiro
num1 <= num2 
    // verdadeiro
num1 >= num2
// falso



Importante: Isso mesmo, quando fazemos comparações (relação) para
sabermos se dois números são iguais usamos dois (2) sinais de igualdade ‘==’ o que
é diferente do operador de atribuição simples ‘=’.






Operadores lógicos


Em C# temos os seguintes
operadores lógicos:



Operador
Descrição


&& (E)
||
(OU)



Os operadores lógicos
são usados para combinar comparações, exemplo:



Definindo duas variáveis



int num1 = 1, num2
= 3;



bool PrimeiroTeste
= num1 > 3 && num2 < 10



Neste caso a variável ‘PrimeiroTeste’
será falsa, pois numa expressão onde usamos o operador lógico && (E) as duas expressões relacionais tem que
ser verdadeiras, neste caso a primeira é falsa(num1 não é maior que 3) e a segunda
é verdadeira (num2 é menor que 10), mas para que a variável PrimeiroTeste seja verdadeira
as duas condições tem que ser verdadeira o que não ocorre.

int num1 = 1, num2
= 3;



bool SegundoTeste =
num1 > 3 || num2 < 10



Neste caso a variável ‘SegundoTeste’
é verdadeira, pois quando usamos o operador lógico || (OU) basta que uma das comparações
seja verdadeira.

Precedência de Operador


Quando falamos de operadores
aritméticos, alguns operadores têm precedência sobre outros, veja:



int X = 25 – 7 * 2;



A expressão acima tem
duas respostas dependendo do modo que se faça à conta, por exemplo, 25 - 7 = 18,
18 * 2 = 36, x = 36. Ou, 7*2 = 14, 25-14 = 11, x = 11.



Qual resposta é correta??



Neste caso a segunda,
ou seja, x = 11, pois o operador de multiplicação ‘*’ tem precedência sobre
o operador de subtração ‘-’, assim o calculo de multiplicação é feito primeiro.



Mas e se eu quisesse
que a subtração fosse feita primeiro?



Simples, para resolver
esse ‘problema’ usamos os parênteses, assim:



int X = (25 – 7) *
2;



Agora sim o resultado
seria 36, pois o que esta dentro dos parênteses é calculado primeiro e depois
com o resultado desse calculo é calculado o resto da expressão.



Incremento e Decremento




Incrementar um número
ou variável significa adicionar 1 ao valor atual, da mesma forma que subtrair 1
de um número ou variável se da o nome de Decremento.



Em C# temos o seguinte:



Operador
Descrição


++
(Incremento)
--
(Decremento)

Exemplo:






int X = 1;

X++;



Aqui estamos atribuindo
o valor
1 a
variável X e depois na linha seguinte incrementando
1
a
mesma variável, ou seja, nesse momento X vale 2.



O mesmo é válido para
o Decremento, veja:



X--;



Se antes X valia 2
agora vale 1, pois usamos o operador de decremento assim tirando 1 da variável.



Prefixo e Sufixo




Tanto o operador de
incremento quanto o operador de decremento tem duas formas de serem aplicados: prefixo
e sufixo.



Prefixo
à
O operador é digitado antes do nome da variável



Ex:



int X = ++Y;



Sufixo
à
O operador é digitado depois do nome da variável



Ex:



int X = Y++;






O que ocorre é que
quando estamos atribuindo um valor a uma variável usando prefixo, ou seja, algo
do tipo <variavel1> = ++<variavel2> você esta dizendo para que a variável2
seja incrementada e logo depois seja atribuído o seu valor a variável1.



Exemplo:



int x = ++y;



Vamos imaginar que
a variável y vale 2 e que a variável x vale 0 (zero), como estamos usando o prefixo
neste caso a variável y será incrementa em 1, ou seja, agora y vale 3 e logo em
seguida o valor de y é atribuído a variável x que agora também vale 3.



No caso de usarmos
o sufixo primeiro o valor de y seria passado para a variável x, ou seja,
x valeria 2 e em seguida y seria incrementado assim y agora vale 3.






Conclusão


Vimos neste artigo os operadores
da linguagem, aprendemos sobre os operadores aritméticos, operadores de atribuição,
operadores relacionais e operadores lógicos, além de termos aprendido também sobre
incremento e decremento e ainda sobre prefixo e sufixo.