De graças ao ComoTudoFunciona por esse gif! :D |
Sendo a condição qualquer coisa que retorne verdadeiro(não-zero) ou falso(0).Comando é qualquer coisa,até mesmo um bloco {} ou somente um x = 1.A tradução de while é quando.
Antes,queria dar mais algumas informações sobre as \n que passei em outra aula sobre printf
\b - Retrocesso
\f - Alimentação de Formulário
\n - Nova Linha
\r - Retorno de Carro
\t - Tabulação Horizontal
\" - Aspas duplas
\' - Aspas Simples
\0 - Nulo
\\ - Barra invertida
\v - Tabulação Vertical
\a - Alerta(beep)
Bem,agora vamos falar sobre os operadores.Há quatro tipos: os aritméticos,relacionais,lógico e os bit a bit.
Começando pelo o nosso antigo =,nos temos uma nova função para ele,veja se consegue descobrir apartir de sua aplicação:
x = y = z = a = b = 123;
Descobriu? Isso mesmo!Ele pode fazer varias atribuições ao mesmo tempo!Próximos são os aritméticos.Ai vai uma tabela(lembrando que em int o resto da divisão é descartado, então 5/2=2 e 5%2=1)
- Subtração,também multiplica seu operando por -1(ou seja 1-1 é igual 1 + ( - 1 ) = 0)
+ Adição
* Multiplicação
/ Divisão
% Resto da Divisão
-- Decremento(retira 1,pode vir antes ou depois de seu operando)
++ Incremento(soma 1,pode vir antes ou depois de seu "aplicado")
Vale lembrar que se
x = 10;
Então os seguintes códigos são diferentes:
y = x++;
y = ++x;
O primeiro transforma y = x e depois x+1, então y = 10.No segundo ser y = 1+x,então x é somado e y = 11.E a uma diferença na velocidade,pois o compilador processa mais rápido x++ ou ++x do que x+1,por incrível que pareça.Aqui vai uma lista do que acontece primeiro e o que acontece depois:
++ -- Acontece Primeiro
- (menos unário)
* / %
+ - Acontece depois
Itens de mesmo nível são avaliados da esquerda para a direita,mas se você colocar parênteses força a acontecer primeiro qualquer tipo de operação.
Agora os operadores relacionais:
> Maior que
>= Maior ou igual
< Menor
<= Menor ou igual
== Igual
!= Diferente
Os Operadores lógicos:
&& E (AND, em inglês)
|| Ou (or em inglês,o caractere de barra invertida e shift produz ele,o pipe)
! Não(NOT em inglês(exclamação))
Agora,para esclarecer, o que aconteceria se usassemos && e || e ! em p=0011 e q=0110
p q p&&q p||q !p !q
0 0 0 0 1 1
0 1 0 1 1 0
1 1 1 1 0 0
1 0 0 1 0 1
Ou seja && deixa somente o que os dois tiverem,|| soma os dois,o que um tiver o outro tem,então está bom,o ! inverte,se tem então não terá,se não tem então terá.Isso é otimo quando se precisa de um resultado 0 (falso) ou verdadeiro(não-zero).A não esquecer dos parênteses pois:
!0 && 0 | | 0 ---FALSO
!(0 && 0) | | ---Verdadeiro!
Agora sobre os operadores de ponteiros(vamos aprender mais para frente pois é complicado) & e * .Bom,ao invés de falar o técnico vou dar um exemplo e mostrar o que você precisa saber para usa-lo.Exemplo:
m = &count;
Bom, o m tem um endereço na memoria que não tem nada a ver com seu valor(ex: endereço: 4260 valor:50), e leitura disso seria "m recebe o endereço de count" então como no exemplo,count teria 4260.Agora se:
q = *m;
Seria lida "q recebe o valor do endereço de m" logo se m é 4260,então o q recebe o valor que está no endereço 4260, que é o valor 50,então q=50.Mas deve se tomar cuidado pois você nunca sabe o endereço de uma variável,então digamos que g está no endereço 100 e tem valor 10,se você fizer isso:
x = *g;
Você colocaria x o valor que está no endereço 10(valor de g) e você não sabe o que há no endereço 10(geralmente dados do sistema) e caso você usasse isso para uma contagem,apareceria um numero absurdo.
Bem vou começar a falar sobre ponteiros aqui.Não,não são os ponteiros do relógio,mas tem a mesma função.Imagine um biblioteca.O ponteiro ira falar para você onde esta o livro que ele sabe.Mas ele só sabe o endereço de um livro,não de todos
A biblioteca é uma matriz(vamos estudar mais para frente)então ela guarda vários números e o ponteiro fala qual numero esta numa posição dessa matriz.Matrizes são assim:
maz[10];
Essa é uma matriz de 10 números,do 0 ao 9(como armários)mas ainda estão indefinidos.
Olhe o que acontece para ver como é a relação de ponteiros e matrizes:
*m = &maz[0];
Pronto!Agora m está apontando para o primeiro "armário" da matriz maz.Ficou curioso?Não entendeu?Então até a próxima aula,por que não se pode falar de um se falar do outro!
Nenhum comentário:
Postar um comentário