02 - dados e comandos
DESCRIPTION
02 - Dados e ComandosTRANSCRIPT
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 1
Dados e Comandos em Java
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 2
Identificadores . . .
�Seqüência de letras (minúsculas ≠ maiúsculas), dígitos, ‘_’ e ‘$’ que não começa com um dígito.
umPonto val x X um_Numero _1 $1
�Alguns identificadores são reservados para utilização pela própria linguagem Java.
class new public static super while goto . . .
�As seguintes seqüências não são identificadores em Java . . .2a x' k.1 n-1
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 3
Sintaxe (Cont.)
� Literais . . .
�Representam valores.
15 -6802 1.51e-12 '@' "um string" 0xff
255 na notação hexadecimal
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 4
Variáveis e Atribuição
� Variáveis . . .
Tipo x, y, z;
� Atribuição
x = e1;
Tipo x = e1,y = e2,z = e3;
int n = 2, k, p = 0, q;
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 5
Tipos Primitivos . . .
� Inteiros . . .byte (8 bits)short (16 bits)int (32 bits) » É o default para literais de inteiroslong (64 bits)
� Decimais (ponto flutuante) . . .55.63 -2.72 12.01E-32
• double (64 bits, 15 dígitos significativos)» É o default para literais de decimais
• float (32 bits, 7 dígitos significativos)22.5f ou 22.5F 12.01E-32F
� Booleanos (boolean) . . .{true, false}» Booleanos não podem ser utilizados como número.
Objetos com sintaxe e tratamento semântico especial
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 6
� Caracteres (Unicode)
� char (16 bits)'9' 'A' '?' '$'
� Caracteres especiais . . .\" = aspas\' = apóstrofo\\ = backslash\b = backspace\t = tabulação\r = retorno de carro\n = nova linha\uXXXX = XXXX16 onde X é qquer algarismo hexadecimal {0,...,9,A,...,F}
'\u0035' (= '5' ) '\''
0000 0000 0000 0000
0000 0000 xxxx xxxx
8 bits = ASCII
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 7
Strings
� Strings são objetos ordinários (imutáveis) representando seqüências de caracteres.
� java.lang.String
� Exemplo
"\n\nUma sequencia de caracteres de \"16 bits\"."
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 8
Operadores aritméticos
� 2 * raio
� -8.8 / 2-- divisão decimal (pelo menos um operando edecimal)
� 5 / 3-- divisão inteira (ambos os operandos sãointeiros)
� 5 % 3-- resto da divisão inteira (operação módulo n)
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 9
Operadores relacionais e lógicos
� x == 2
� 2 != y
� (total >= 3) && !(area < 3.5)
false true
false
true
false false
false true
&& false true
false
true
false true
true true
||
false
true
true
false
!
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 10
(int)-8.8 //= -8
(double)5 / 3 //= 5.0 / 3
"Infor" + "matica" //= "Informatica"
“total = $" + 19.99 //= “total = $19.99"
Outros operadores
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 13
y *= ++p;
int ++x() { x = x + 1; return x;}
int x++() { int aux = x; x = x + 1; return aux;}
x op= exp ⇔⇔⇔⇔ x = x op exp
Um exemplo de açúcar sintático em Java
⇔⇔⇔⇔ y = y * ++p;
⇔⇔⇔⇔ { p = p + 1; y = y * p; }
x = 2;
y = x++;
x
2
3
y
-
2
x = 2;
y = ++x;
x
2
3
y
-
3
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 14
� Condicional
1.["Digite um inteiro: "];2.int n = ?int;3.boolean par = n % 2 == 0;4.["\n" + n + " eh "];5.6.if (par) ["par."];7.else ["impar."];
if ( Condição ){dec1; dec2; ... ; deck;}
else{dec1; dec2; ... ; deck;}
if ( Condição ){dec1; dec2; ... ; deck;}
...Digite um inteiro: 5
5 eh impar....
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 15
� Iteração
while ( Condição ){dec1; dec2; ... ; deck;}
do{dec1; dec2; ... ; deck;}
while ( Condição )
1.["Digite um natural: "];2.int n = ?int;3.int x = 0,4. fat = 1; //Invariante: fat = x!5.6.while (x < n) {7. x = x + 1;8. fat = fat * x; //Invariante: fat = x!9.}10.11.["\n" + n + "! = " + fat];
...Digite um natural: 5
5! = 120...
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 16
� Iteração
for(Inicialização; Condição; Incremento) {dec1; dec2; ... ; deck;
}
1.["Digite um natural: "];2.int n = ?int;3.int fat = 1;5.4.for(int i = 1; i <= n; i++) fat *= i;6.7.["\n" + n + "! = " + fat];
...Digite um natural: 5
5! = 120...
Prof. Rosvelter J. Coelho da Costa – Copyright 1999-2004 17
� Recursão
f(x) {dec1; ... ; f(e); ... ; deck;}
1.["Digite um natural: "];2.int n = ?int;3.int fat = fat(n);4.5.["\n" + n + "! = " + fat];
...Digite um natural: 5
5! = 120...
int fat(int x) {if (x == 0) return 1;return x * fat(x-1);
}