Buscar

CC-01-JavaBasico

Prévia do material em texto

8/30/2010
1
Prof. Ricardo Massa F. LimaProf. Ricardo Massa F. Lima
Conceitos básicos de Java
AULA 02 AULA 02 –– JAVA BÁSICOJAVA BÁSICO
�� EclipseEclipse
�� Estrutura de um programa JavaEstrutura de um programa Java
�� Palavras chavePalavras chave
�� IdentificadoresIdentificadores
�� Variáveis: declaração e inicializaçãoVariáveis: declaração e inicialização
8/30/2010
2
ObjetivosObjetivos
�� EstudarEstudar
–– elementos básicos da estrutura de um programa elementos básicos da estrutura de um programa 
JavaJava
–– variáveis e tipos primitivosvariáveis e tipos primitivos
O EclipseO Eclipse
�� Antes de iniciar, vamos nos familiarizar com o Antes de iniciar, vamos nos familiarizar com o 
eclipse, nosso companheiro inseparável durante o eclipse, nosso companheiro inseparável durante o 
cursocurso
8/30/2010
3
no no firefoxfirefox......
...abra o link:...abra o link:
http://http://www.cin.ufpe.br/~rmfl/ip/films/HelloWorld.swfwww.cin.ufpe.br/~rmfl/ip/films/HelloWorld.swf
Estrutura de um programa JavaEstrutura de um programa Java
ObjetosObjetos são instâncias de classe, assim, um programa são instâncias de classe, assim, um programa 
java é formado por uma série de descrições de classejava é formado por uma série de descrições de classe
corpo
cabeçalho
8/30/2010
4
Estrutura de um programa JavaEstrutura de um programa Java
modificador de acesso
indica a definição de uma classe
nome da classe
É necessário que o nome do arquivo seja igual
ao nome da classe pública com extensão .java
PrimeiroPrograma.java
Estrutura de um programa JavaEstrutura de um programa Java
método estático
método não retorna valor 
após sua execução
Vamos estudar mais detalhes 
sobre métodos estáticos e tipos de 
métodos adiante...
8/30/2010
5
Estrutura de um programa JavaEstrutura de um programa Java
método principal da classe
Necessário existir um método main para que a classe execute!
para executar um programa, o interpretador Java sempre vai 
começar a execução no método main da classe indicada
Pode-se incluir outros métodos na classe e chamá-los a partir do 
método main
vamos estudar criação de métodos mais adiante...
Estrutura de um programa JavaEstrutura de um programa Java
toda instrução Java termina 
com um ponto e vírgula
objeto método do objeto
parâmetro do método
estudaremos mais adiante...
8/30/2010
6
PalavrasPalavras reservadasreservadas
�� LiteraisLiterais
–– null true falsenull true false
�� PalavrasPalavras chavechave
–– abstract abstract assertassert booleanboolean break byte case break byte case 
catch char class continue default do double catch char class continue default do double 
else extends final finally float for if else extends final finally float for if 
implements import implements import instanceofinstanceof intint interface interface 
long native new package private protected long native new package private protected 
public return short static public return short static strictfpstrictfp super super 
switch synchronized this throw throws switch synchronized this throw throws 
transient try void volatile whiletransient try void volatile while
�� PalavrasPalavras reservadasreservadas parapara usouso futurofuturo
–– byvaluebyvalue cast const future generic cast const future generic gotogoto
inner operator outer rest inner operator outer rest varvar volatilevolatile
Jamais será 
implementado
Já implementadas de outra maneira,
mas continuam reservadas
PalavrasPalavras reservadasreservadas
�� Java é case Java é case sensitivesensitive, o que torna possível usar , o que torna possível usar 
palavras similares às palavras reservadaspalavras similares às palavras reservadas
�� As palavras abaixo estão disponíveis para usoAs palavras abaixo estão disponíveis para uso
ABSTRACTABSTRACT ASSERTASSERT BOOLEANBOOLEAN BREAKBREAK BYTEBYTE CASECASE CATCHCATCH CHARCHAR
CLASSCLASS CONTINUECONTINUE DEFAULTDEFAULT DODO DOUBLEDOUBLE ELSEELSE EXTENDSEXTENDS FINALFINAL
FINALLYFINALLY FLOATFLOAT FORFOR IFIF IMPLEMENTSIMPLEMENTS IMPORTIMPORT INSTANCEOFINSTANCEOF INTINT
INTERFACEINTERFACE LONGLONG NATIVENATIVE NEWNEW PACKAGEPACKAGE PRIVATEPRIVATE PROTECTEDPROTECTED
PUBLICPUBLIC RETURNRETURN SHORTSHORT STATICSTATIC STRICTFPSTRICTFP SUPERSUPER SWITCHSWITCH
SYNCHRONIZEDSYNCHRONIZED THISTHIS THROWTHROW THROWSTHROWS TRANSIENTTRANSIENT TRYTRY VOIDVOID
VOLATILEVOLATILE WHILEWHILE
Pode causar confusão! 
Não é uma boa prática de programação!
8/30/2010
7
IdentificadoresIdentificadores
�� Identificadores são:Identificadores são:
–– Uma palavra que representa nome de variáveis, Uma palavra que representa nome de variáveis, 
métodos, classes e rótulosmétodos, classes e rótulos
–– CaseCase--sensitivesensitive
�� Caracteres podem ser dígitos, letras, ‘$’ ou ‘_’Caracteres podem ser dígitos, letras, ‘$’ ou ‘_’
�� Um identificadores não pode:Um identificadores não pode:
–– Começar com um dígito Começar com um dígito 
–– Ser igual a uma palavra reservada Ser igual a uma palavra reservada 
An-Identifier
2nd_Identifier
goto
10$
An_Identifier
a_2nd_Identifier
Go2
$10
�� ��
IdentificadoresIdentificadores
8/30/2010
8
IdentificadoresIdentificadores
JavaJava éé CaseCase--SensitiveSensitive
�� YournameYourname, , yournameyourname, , yourNameyourName, , YourNameYourName
–– TodosTodos sãosão diferentesdiferentes
8/30/2010
9
JavaJava éé CaseCase--SensitiveSensitive
�� Convenções:Convenções:
–– PackagePackage: tudo minúsculo : tudo minúsculo 
�� theexampletheexample
–– ClassClass: primeira letra maiúscula: primeira letra maiúscula
�� TheExampleTheExample
–– MethodMethod//fieldfield: primeira letra minúscula : primeira letra minúscula 
�� theExampletheExample
–– ConstantsConstants: tudo maiúsculo: tudo maiúsculo
�� THE_EXAMPLETHE_EXAMPLE
JavaJava éé CaseCase--SensitiveSensitive
�� Convenções:Convenções:
–– PackagePackage: tudo minúsculo : tudo minúsculo 
�� theexampletheexample
8/30/2010
10
VariáveisVariáveis
�� Uma variável é um identificador usado para representar Uma variável é um identificador usado para representar 
uma posição de memóriauma posição de memória
�� As variáveis são usadas para armazenar valoresAs variáveis são usadas para armazenar valores
�� Em Java, assim como em muitas linguagens, é necessário Em Java, assim como em muitas linguagens, é necessário 
declarar o tipo da variáveldeclarar o tipo da variável
�� O tamanho da área de memória reservada para a variável O tamanho da área de memória reservada para a variável 
depende do tipo utilizado para declarar a variáveldepende do tipo utilizado para declarar a variável
declara a variável 
denominada valor 
com tipo int (4 bytes)
Java heap
0
valor
2
8/30/2010
11
Declaração e inicialização de variáveisDeclaração e inicialização de variáveis
Java oferece diferentes maneiras para declarar e inicializar Java oferece diferentes maneiras para declarar e inicializar 
variáveisvariáveis
Declaração e inicialização de variáveisDeclaração e inicialização de variáveis
Java oferece diferentes maneiras para declarar e inicializar Java oferece diferentes maneiras para declarar e inicializar 
variáveisvariáveis
8/30/2010
12
Declaração e inicialização de variáveisDeclaração e inicialização de variáveis
ExercícioExercício
�� Escreva um programa para trocar o valor de Escreva um programa para trocar o valor de 
duas variáveis e imprimir o valor final das duas duas variáveis e imprimir o valor final das duas 
variáveis. variáveis. 
�� Por exemplo, se a variável V1 armazenar o valor Por exemplo, se a variável V1 armazenar o valor 
inteiro 2 e a variável V2 armazenar o valor inteiro 2 e a variável V2 armazenar o valor 
inteiro 5, no final do programa será impresso:inteiro 5, no final do programa será impresso:
V1 = 5V1 = 5
V2 = 2V2 = 2
8/30/2010
13
SoluçãoSolução
http://www.cin.ufpe.br/~rmfl/ip/programs/TrocaValor.java
ExercícioExercício
�� Assuma agora que temos quatro variáveis, V1, Assuma agora que temos quatro variáveis, V1, 
V2, V3 e V4, que armazenam os valores inteiros V2, V3 e V4,que armazenam os valores inteiros 
10, 15, 20 e 25, respectivamente.10, 15, 20 e 25, respectivamente.
�� Escreva um programa para inverter a ordem Escreva um programa para inverter a ordem 
desses valores e imprimir o resultado, que seria:desses valores e imprimir o resultado, que seria:
V1 = 25V1 = 25
V2 = 20V2 = 20
V3 = 15V3 = 15
V4 = 10V4 = 10
8/30/2010
14
SoluçãoSolução
http://http://www.cin.ufpe.br/~rmfl/ip/programs/InverteTudo.javawww.cin.ufpe.br/~rmfl/ip/programs/InverteTudo.java
AULA 03 AULA 03 –– JAVA BÁSICOJAVA BÁSICO
8/30/2010
15
TiposTipos PrimitivosPrimitivos: : IntegersIntegers
�� TodosTodos osos númerosnúmeros possuempossuem sinalsinal
�� InicializadosInicializados com zerocom zero
Categories:
a.a. integerinteger
b. floating point
c. character
d. boolean
1.1. bytebyte
2.2. shortshort
3.3. intint
4.4. longlong
Size: 1 byte
Range: -27 � 27 - 1
Size: 1 byte
Range: -27 � 27 - 1
Size: 2 bytes
Range: -215 � 215 - 1
Size: 2 bytes
Range: -215 � 215 - 1
Size: 4 bytes
Range: -231 � 231 - 1
Size: 4 bytes
Range: -231 � 231 - 1
Size: 8 bytes
Range: -263 � 263 - 1
Size: 8 bytes
Range: -263 � 263 - 1
TiposTipos PrimitivosPrimitivos: : InteiroInteiro
Categories:
a.a. integerinteger
b. floating point
c. character
d. boolean
1.1. bytebyte
2.2. shortshort
3.3. intint
4.4. longlong
Size: 1 byte
Range: -27 � 27 - 1
Size: 1 byte
Range: -27 � 27 - 1
Size: 2 bytes
Range: -215 � 215 - 1
Size: 2 bytes
Range: -215 � 215 - 1
Size: 4 bytes
Range: -231 � 231 - 1
Size: 4 bytes
Range: -231 � 231 - 1
Size: 8 bytes
Range: -263 � 263 - 1
Size: 8 bytes
Range: -263 � 263 - 1
okok
8/30/2010
16
TiposTipos PrimitivosPrimitivos: : InteiroInteiro
Categories:
a.a. integerinteger
b. floating point
c. character
d. boolean
1.1. bytebyte
2.2. shortshort
3.3. intint
4.4. longlong
Size: 1 byte
Range: -27 � 27 - 1
Size: 1 byte
Range: -27 � 27 - 1
Size: 2 bytes
Range: -215 � 215 - 1
Size: 2 bytes
Range: -215 � 215 - 1
Size: 4 bytes
Range: -231 � 231 - 1
Size: 4 bytes
Range: -231 � 231 - 1
Size: 8 bytes
Range: -263 � 263 - 1
Size: 8 bytes
Range: -263 � 263 - 1
ErroErro
TiposTipos PrimitivosPrimitivos: Real: Real
�� NúmerosNúmeros reaisreais ((possuempossuem a parte a parte fracionáriafracionária))
�� InicializadosInicializados com zerocom zero
Categories:
a. integer
b.b. floating pointfloating point
c. character
d. boolean
1.1. floatfloat
2.2. doubledouble
Size: 4 bytes
Range: ±1.4 x 10-45� ±3.4 x 1038
Size: 4 bytes
Range: ±1.4 x 10-45� ±3.4 x 1038
Size: 8 bytes
Range: ±4.9 x 10-324� ±1.8 x 10308
Size: 8 bytes
Range: ±4.9 x 10-324� ±1.8 x 10308
8/30/2010
17
TiposTipos PrimitivosPrimitivos: : CaracterCaracter
�� Char is any unsigned Unicode characterChar is any unsigned Unicode character
�� InicializadosInicializados com zero (com zero (\\u0000)u0000)
Categories:
a. integer
b. floating point
c.c. charactercharacter
d. boolean
charchar Size: Size: 2 bytes2 bytesRange:Range: \u0000 �\u0000 � \uFFFF\uFFFF
Hexadecimal
Padrão unicode
TiposTipos PrimitivosPrimitivos: : booleanobooleano
�� ValoresValores booleanosbooleanos emem java java sãosão diferentesdiferentes de de outrasoutras
linguagenslinguagens, , comocomo CC
–– PodemPodem apenasapenas ser true ser true ouou falsefalse
–– Um valor Um valor intint NÃO NÃO podepode ser ser usadousado no no lugarlugar de um de um booleanboolean
�� InicializadoInicializado com falsecom false
Categories:
a. integer
b. floating point
c.c. charactercharacter
d. boolean booleanboolean
Size: Size: 1 byte1 byte
Range:Range: true | falsetrue | false
8/30/2010
18
ExemploExemplo
Entrada de DadosEntrada de Dados
Baixe a classe Baixe a classe Util.javaUtil.java
http://www.cin.ufpe.br/~rmfl/ip/programs/Util.javahttp://www.cin.ufpe.br/~rmfl/ip/programs/Util.java
salve em um pacote do seu projeto.salve em um pacote do seu projeto.
Para que o Eclipse encontre a nova classe, clique no Eclipse sobre Para que o Eclipse encontre a nova classe, clique no Eclipse sobre 
o pacoteo pacote com o botão direito do mouse e escolha a opção com o botão direito do mouse e escolha a opção RefreshRefresh
ou clique em F5ou clique em F5
Utilize os comandos Utilize os comandos Util.readStr()Util.readStr(), , Util.readInt(Util.readInt() ) e e 
Util.readDbl(Util.readDbl()) para ler valores para ler valores StringString, , intint e e doubledouble, , 
respectivamenterespectivamente
String String numeronumero = = Util.readStrUtil.readStr(); (); 
intint diadia = = Util.readIntUtil.readInt();();
double valor = double valor = Util.readDblUtil.readDbl();();
8/30/2010
19
Entrada de DadosEntrada de Dados
import java.util.*;
Scanner in = new Scanner(System.in);
String nome = in.nextLine();
int idade = in.nextInt();
Outra alternativa
Entrada de DadosEntrada de Dados
import java.util.*;
public class Estudos{
public static void main(String[] args){
Scanner in = new Scanner(System.in);
System.out.print("Qual é o seu nome? ");
String nome = in.nextLine();
System.out.print("Qual sua idade? ");
int idade = in.nextInt();
System.out.println("Olá, " + nome +". Você tem " + idade + " anos.");
}
}
Escreva um programa que pergunta e realiza a leitura do nome e 
idade de uma pessoa e imprime uma mensagem com tais 
informacões.
Ex: Olá José. Você tem 25 anos!
8/30/2010
20
Formatação da SaídaFormatação da Saída
Exemplo:Exemplo:
x = 1000.0 / 3.0;x = 1000.0 / 3.0;
System.System.out.print(x);out.print(x);
Resultado:Resultado:
333.3333333333335;333.3333333333335;
Resultado, talvez, indesejável devido a grande quantidade de dígitos Resultado, talvez, indesejável devido a grande quantidade de dígitos 
após a vírgula.após a vírgula.
Classe Classe NumberFormatNumberFormat do pacote do pacote javajava..texttext..
Possui três métodos que empregam Possui três métodos que empregam formatadoresformatadores padrão para:padrão para:
Números;Números;
Valores monetários;Valores monetários;
Valores de percentuais.Valores de percentuais.
Formatação da SaídaFormatação da Saída
10000 / 3.0;10000 / 3.0;
ResultadosResultados::
NumberFormat.getNumberInstanceNumberFormat.getNumberInstance()() �������� 3,333.3333,333.333
NumberFormat.getCurrencyInstanceNumberFormat.getCurrencyInstance() () �������� $3,333.33$3,333.33
NumberFormat.getPercentInstanceNumberFormat.getPercentInstance()() �������� 333,333%333,333%
Estes métodos retornam um objeto do tipo Estes métodos retornam um objeto do tipo NumberFormatNumberFormat..
ExemploExemplo::
3,333.333
Modifique o programa para que o 
valor seja impresso em forma de:
1. valor monetário 
2. percentual 
8/30/2010
21
Formatação da SaídaFormatação da Saída
Número mínimo e máximo de dígitos inteiros ou fracionáriosNúmero mínimo e máximo de dígitos inteiros ou fracionários
Métodos Métodos dada classeclasse NumberFormatNumberFormat
setMinimumIntegerDigitssetMinimumIntegerDigits;;
setMinimumFractionDigitssetMinimumFractionDigits;;
setMaximumIntegerDigitssetMaximumIntegerDigits;;
setMaximumFractionDigitssetMaximumFractionDigits;;
ExemploExemplo::
double double xx = 10000.0 / 3.0;= 10000.0 / 3.0;
NumberFormatNumberFormat nfnf = = NumberFormat.getNumberInstanceNumberFormat.getNumberInstance();();
nf.setMaximumFractionDigits(4);nf.setMaximumFractionDigits(4);
nf.setMinimumIntegerDigits(6);nf.setMinimumIntegerDigits(6);
String String fxfx = = nf.format(xnf.format(x); // a string “003,333.3333”); // a string “003,333.3333”
Veja o que acontece se você reduzir número máximo de dígitos 
inteiros para 3 e aumentar o número mínimo de dígitos 
fracionários para 6. 
Formatação da SaídaFormatação da Saída
Objeto Objeto DecimalFormatDecimalFormat: indica a forma desejada dos números.: indica a forma desejada dos números.
As formatações são indicadas em uma string de formatação que mostra As formatações são indicadas em uma string de formatação que mostra 
como o número deve ficar.como o número deve ficar.
Caracteres de formatação da classe Caracteres de formatação da classe DecimalFormatDecimalFormat::
00Um dígito (pelo menos)Um dígito (pelo menos)
## Um dígito. Se for zero não mostra.Um dígito. Se for zero não mostra.
.. Separador decimalSeparador decimal
%% Multiplica por 100 e mostra na forma percentualMultiplica por 100 e mostra na forma percentual
8/30/2010
22
printprint vsvs printlnprintln
printfprintf (‘f’ de (‘f’ de formatformat))
8/30/2010
23
printfprintf (‘f’ de (‘f’ de formatformat))
LiteraisLiterais PrimitivosPrimitivos
�� Um literal Um literal éé um valorum valor
�� ExistemExistem cincocinco tipostipos de de literaisliterais
–– IntegerInteger
–– Floating pointFloating point
–– BooleanBoolean
–– CharacterCharacter
–– StringString
Literais
integer……..…..7
floating point…..7.0f
boolean……..….true
character……….'A'
string………..….."A"
8/30/2010
24
LiteraisLiterais PrimitivosPrimitivos: : Floating PointFloating Point
�� LiteraisLiterais Float Float terminamterminam com com ff ((ouou F):F):
–– 7.1f7.1f
�� LiteraisLiterais Double Double terminamterminam com com dd ((ouou D):D):
–– 7.1D7.1D
�� ‘‘ee’ ’ ouou ‘E’ ‘E’ éé usadousado emem notaçãonotação científicacientífica
–– 7.1e2 => 7.1 7.1e2 => 7.1 xx 101022
�� Ponto Ponto flutuanteflutuante semsem letraletra no final no final éé consideradoconsiderado doubledouble
–– 7.1 is the same as 7.1d7.1 is the same as 7.1d
LiteraisLiterais primitivosprimitivos
�� CaracteresCaracteres especiaisespeciais::
–– \\bb backspacebackspace
–– \\ff form form feedfeed
–– \\nn newlinenewline
–– \\rr returnreturn
–– \\tt tabtab
–– \\"" quotation markquotation mark
–– \\’’ apostropheapostrophe
–– \\\\ backslashbackslash
comandos para 
a impressora
imprima o texto:
\” é usado para quotation mark
8/30/2010
25
SoluçãoSolução
LiteraisLiterais primitivosprimitivos
�� ValoresValores hexadecimal no hexadecimal no padrãopadrão unicodeunicode podempodem ser ser 
escritosescritos com um com um \\uu no no inícioinício::
–– PorPor exemploexemplo \\u2122 u2122 éé oo símbolosímbolo de de marcamarca registradaregistrada ((TMTM))
8/30/2010
26
OperadoresOperadores
AdiçãoAdição ++
Subtração Subtração ––
MultiplicaçãoMultiplicação **
DivisãoDivisão //
O operador / denota divisão inteira se os dois argumentos forem O operador / denota divisão inteira se os dois argumentos forem 
inteiros e divisão por ponto flutuante, caso contrário.inteiros e divisão por ponto flutuante, caso contrário.
Resto Inteiro % Resto Inteiro % -- Operador Operador modmod. . 
Exemplos:Exemplos:
15 / 4 => 3;15 / 4 => 3;
15 % 2 => 1;15 % 2 => 1;
11.0 / 4 => 2.75;11.0 / 4 => 2.75;
Inicialização de variáveis com operadores aritméticos:Inicialização de variáveis com operadores aritméticos:
intint n = 5;n = 5;
intint a = 2 * n;a = 2 * n; // a é 10// a é 10
ExercíciosExercícios
�� Ler 3 números inteiros e calcular a sua média Ler 3 números inteiros e calcular a sua média 
aritmética.aritmética.
8/30/2010
27
ExercíciosExercícios
�� Repita o mesmo exercício para números Repita o mesmo exercício para números doubledouble
e imprima apenas a parte fracionária da média e imprima apenas a parte fracionária da média 
ExponencialExponencial
Não possui um operador específico.Não possui um operador específico.
UsaUsa--se o método se o método powpow, , que faz parte da classe que faz parte da classe MathMath de de javajava..langlang..
Exemplo de exponencial:Exemplo de exponencial:
double double yy = = Math.pow(xMath.pow(x, a);, a);
equivale a equivale a �� y = xy = xaa // x elevado a potência// x elevado a potência..
Este método precisa de argumentos do tipo Este método precisa de argumentos do tipo doubledouble e retorna um e retorna um 
doubledouble também.também.
Veja outras operações, como Veja outras operações, como MathMath..srqtsrqt para para raízraíz quadradaquadrada
8/30/2010
28
ExercíciosExercícios
�� Calcule as raízes de uma equação quadrática. Calcule as raízes de uma equação quadrática. 
Você terá que ler os coeficientes do polinômio.Você terá que ler os coeficientes do polinômio.
ax 2 + bx + c = 0
x =
−b ± b2 − 4ac
2a
Bhaskara �
SoluçãoSolução
8/30/2010
29
Operadores Aritméticos de AtribuiçãoOperadores Aritméticos de Atribuição
+=+=
––==
*= *= 
/=/=
Exemplo:Exemplo:
x += 4; //equivale a x = x + 4;x += 4; //equivale a x = x + 4;
Incremento e DecrementoIncremento e Decremento
nomeDaVariavelnomeDaVariavel---- ou ou nomeDaVariavelnomeDaVariavel++++
PósPós--fixado: fixado: n++;n++;
PréPré--fixado: fixado: ++n;++n;
Exemplos:Exemplos:
intint m = 7;m = 7;
intint nn = 7;= 7;
intint a = 2 * ++a = 2 * ++mm;;
intint b = 2 * n++;b = 2 * n++;
8/30/2010
30
AULA 04 AULA 04 –– JAVA BÁSICOJAVA BÁSICO
Operadores RelacionaisOperadores Relacionais
Igual Igual ====
DiferenteDiferente !=!=
Menor queMenor que <<
Maior que Maior que >>
Menor ou igualMenor ou igual <=<=
Maior ou igualMaior ou igual >=>=
8/30/2010
31
Operadores LógicosOperadores Lógicos
ou ou –– oror �� | || |
ee –– andand �� &&&&
negaçãonegação –– notnot �� !!
OperadoresOperadores ee PrecedênciaPrecedência
Postfix Postfix operatorsoperators [[] . (] . (paramsparams) ) xx++ ++ 
xx----
Unary operatorsUnary operators ++++xx ----xx ++xx --xx ~ !~ !
Creation or castCreation or cast new new ((type)xtype)x
MultiplicativeMultiplicative * * / %/ %
AdditiveAdditive + + --
ShiftShift <<< >> >>>< >> >>>
RelationalRelational < < > <= >= > <= >= instanceofinstanceof
EqualityEquality === !== !=
Bitwise ANDBitwise AND &&
Bitwise ORBitwise OR ^^
Bitwise inclusive ORBitwise inclusive OR ||
Logical ANDLogical AND &&&&
Logical ORLogical OR ||||
ConditionalConditional ??::
AssignmentAssignment = = *= /= %= += *= /= %= += --= = 
>>>= <<= >>>= &= ^= |=>= <<= >>>= &= ^= |=
8/30/2010
32
Modificando Fluxo de ControleModificando Fluxo de Controle
�� A ordem de execução de um método é A ordem de execução de um método é 
denominado fluxo de controledenominado fluxo de controle
�� Exceto quando especificado de outra forma, a Exceto quando especificado de outra forma, a 
ordem de execução de um método é linear, isto ordem de execução de um método é linear, isto 
é uma instrução após a outra em seqüenciaé uma instrução após a outra em seqüencia
�� Alguns comandos em programação nos permitem:Alguns comandos em programação nos permitem:
–– Decidir se a execução de uma instrução deve ou Decidir se a execução de uma instrução deve ou 
não ser feitanão ser feita
�� Esta decisão é baseada em expressões Esta decisão é baseada em expressões 
booleanasbooleanas
63
O Tipo O Tipo booleanboolean
�� Valores: Valores: truetrue , , falsefalse
�� Operadores lógicos e expressões:Operadores lógicos e expressões:
–– xx && && yy ((operadoroperador lógicológico de de conjunçãoconjunção, AND), AND)
–– xx || || yy ((operadoroperador lógicológico de de disjunçãodisjunção, OR), OR)
–– !!xx ((operadoroperador lógicológico de de negaçãonegação, NOT), NOT)
–– xx ^ ^ yy ((operadoroperador lógicológico de de disjunçãodisjunção exclusivaexclusiva, XOR), XOR)
�� OperandosOperandos da direita só são avaliados, se da direita só são avaliados, se 
necessárionecessário
x e y são x e y são 
expressões do 
tipo boolean
As expressões resultantesAs expressões resultantes
são do tipo boolean, gerando 
true ou false como resultado 
da avaliação
8/30/2010
33
Tabela VerdadeTabela Verdade
�� Uma tabela verdade contém todas as Uma tabela verdade contém todas as 
combinações combinações truetrue--falsefalse de uma expressão de uma expressão 
booleanabooleana
65
a b a && b a || b a ^ b
true true true true false
true false false true true
false true false true true
false false false false false
Expressões BooleanasExpressões Booleanas
{ ...
boolean b, c;
b = true;
c = !b;
c = !(true || b) && c;
b = c || !(!b);
...
}
Parênteses são Parênteses são 
usados para 
evitar 
ambigüidades
Qual o valor Qual o valor 
de b neste 
ponto?
truetrue
8/30/2010
34
Operadores relacionaisOperadores relacionais
–– x < yx < y
–– x <= yx <= y
–– x > yx > y
–– x >= yx >= y
x e y são 
expressõesde 
algum tipo 
numérico
As expressões resultantes
são do tipo boolean, gerando 
true ou false como resultado 
da avaliação
67
Operadores relacionais, geralmente, 
fazem parte de expressões booleanas 
Operadores de igualdade Operadores de igualdade 
–– xx == = = yy ((operadoroperador de de igualdadeigualdade))
–– xx != != yy ((operadoroperador de de diferençadiferença, , 
desigualdadedesigualdade))
x e y são 
expressões do 
mesmo tipo, 
para qualquer 
tipo!
As expressões resultantes
são do tipo boolean, gerando 
true ou false como resultado 
da avaliação
68
Operadores de igualdade, também, pode 
fazer parte de expressões booleanas 
8/30/2010
35
Semântica do operador de igualdadeSemântica do operador de igualdade
�� Para avaliar esta expressãoPara avaliar esta expressão
–– AvaliaAvalia--se se xx obtendo um valorobtendo um valor
–– AvaliaAvalia--se se yy obtendo outro valorobtendo outro valor
–– ComparaCompara--se os dois valores obtidos e retornase os dois valores obtidos e retorna--se se 
truetrue caso os dois sejam a mesma referência para caso os dois sejam a mesma referência para 
um objeto ou o mesmo elemento de um tipo um objeto ou o mesmo elemento de um tipo 
primitivo primitivo 
x == y
69
Avaliando o Operador de Igualdade Avaliando o Operador de Igualdade 
de Tipos Primitivosde Tipos Primitivos
boolean b, c;
b = true || false;
c = true && b;
b = b == c;
Qual o valor
de b aqui?
70
true
8/30/2010
36
Avaliando o Operador de Igualdade Avaliando o Operador de Igualdade 
de Tipos Referênciade Tipos Referência
boolean b;
Conta c, d;
c = new Conta();
d = null;
b = c == d;
d = new Conta();
b = c == d;
c = d;
b = c == d;
Qual o valor
de b após cada
uma das 
atribuições?
true
false
false
Avaliando o Operador de Igualdade Avaliando o Operador de Igualdade 
de Tipos Referênciade Tipos Referência
O operador ==O operador ==
–– Testa a identidade exata de um objetoTesta a identidade exata de um objeto
–– Checa se duas variáveis referenciam o mesmo objetoCheca se duas variáveis referenciam o mesmo objeto
–– Para tipos primitivos, checa a igualdade dos valoresPara tipos primitivos, checa a igualdade dos valores
int a = 1;
int b = 1;
if (a==b)... // true
Carro car1 = new Carro(KKW-9945);
Carro car2 = new Carro(KKW-9945);
if (car1==car2)... // false
Carro car1 = new Carro(KKW-9945);
Carro car2 = car1;
if (car1==car2)... // true
8/30/2010
37
Modificando Fluxo de ControleModificando Fluxo de Controle
�� Um comando condicional nos permite escolher Um comando condicional nos permite escolher 
qual deve ser a próxima instrução executada qual deve ser a próxima instrução executada 
em um método em um método 
�� A execução de uma determinada instrução A execução de uma determinada instrução 
depende de uma condição (expressão depende de uma condição (expressão 
booleana) booleana) 
�� Um dos comandos condicionais presentes em Um dos comandos condicionais presentes em 
Java é o Java é o ifif--elseelse
73
O comando O comando ifif--elseelse
if (expressaoBooleana) {
comandos
} else {
outros comandos
}
Se a avaliação de expressaoBooleana
retornar true, comandos são executados , 
caso contrário, executa-se outros comandos
74
8/30/2010
38
VariaçõesVariações do do comandocomando
ifif--elseelse
if (expressaoBooleana) {
comandos
}
if (expressaoBooleana)
comando;
if (expressaoBooleana) 
comando;
else outroComando;
Se a avaliação da
expressão retornar
false, não executa-se
nada
O uso do bloco só
é necessário caso
queira-se executar
mais de um comando
75
EncadeandoEncadeando comandoscomandos
ifif--elseelse
if (expressaoBooleana) { 
comandos
} else if (expressaoBooleana’) { 
comandos’
} else {
comandos’’
}
76
8/30/2010
39
Exemplo de Exemplo de ifif--elseelse
class Conta {
String numero, digito;
double saldo;
void debito(double valor) {
if (valor <= saldo)
saldo = saldo – valor;
} 
...
Exemplo de Exemplo de ifif--elseelse
ClassClass Exemplo{Exemplo{
publicpublic staticstatic voidvoid mainmain(String (String argsargs[]){[]){
intint x=10;x=10;
ifif (x<15){(x<15){
System.System.out.println(“out.println(“X é menor que 15”);X é menor que 15”);
System.System.out.println(“out.println(“O valor de x é: “+ x) ;O valor de x é: “+ x) ;
}}
}}
}}
8/30/2010
40
Exemplo de Exemplo de ifif--elseelse
Class Exemplo{
public static void main(String args[]){
int x=10;
if (x<15){
System.out.println(“X é menor que 15”);
System.out.println(“O valor de x é: “+ x) ;
}else{
System.out.println(“X é maior que 15”);
System.out.println(“O valor de x é: “+ x) ;
}
}
}
Escreva um programa que lê três números 
inteiros e imprime o maior dos três 
8/30/2010
41
ExercícioExercício
�� Ler um valor inteiro para o ano de nascimento de Ler um valor inteiro para o ano de nascimento de 
uma pessoa e dizer se ela pode ou não votar e uma pessoa e dizer se ela pode ou não votar e 
se ela pode ou não tirar carteira de habilitação. se ela pode ou não tirar carteira de habilitação. 
ExercícioExercício
Ler um valor real correspondente a uma nota, tal Ler um valor real correspondente a uma nota, tal 
que 0 ≤ nota ≤ 10, e “classificáque 0 ≤ nota ≤ 10, e “classificá--la” em A, B, C, D la” em A, B, C, D 
ou E, conforme a seguinte taou E, conforme a seguinte tabela:bela:
conceito intervalo
A 8,5 ≤ nota ≤ 10,0
B 7,0 ≤ nota < 8,5
C 5,0 ≤ nota < 7,0
D 3,0 ≤ nota < 5,0
E nota < 3,0
8/30/2010
42
ExercícioExercício
�� Ler dois valores reais, Ler dois valores reais, xx e e yy, correspondentes , correspondentes 
às coordenadas de um ponto no plano e dizer em às coordenadas de um ponto no plano e dizer em 
que quadrante se encontra, ou se está no eixoque quadrante se encontra, ou se está no eixo--x x 
ou no eixoou no eixo--y y ou se está na origem.ou se está na origem.
1º 2º 
4º 3º 
8/30/2010
43
ExercícioExercício
�� Ler valores para os três lados de um triângulo e Ler valores para os três lados de um triângulo e 
dizer o seu tipo (dizer o seu tipo (eqüiláteroeqüilátero, , isósceles isósceles ou ou 
escalenoescaleno).).
8/30/2010
44
ExercícioExercício
Ler dois valores reais, correspondentes ao Ler dois valores reais, correspondentes ao 
pesopeso e à e à alturaaltura de uma pessoa, e calcular o de uma pessoa, e calcular o 
Índice de Massa Corporal (IMC), pela Índice de Massa Corporal (IMC), pela 
fórmula:fórmula:
Em seguida, dar mensagem conforme a Em seguida, dar mensagem conforme a 
seguinte tabela:seguinte tabela:
IMC = peso
altura2
IMC calculado mensagem
IMC≤ 18,5 abaixo do peso
18,5<IMC≤25 peso normal
25<IMC≤30 acima do peso
30<IMC obeso
8/30/2010
45
AULA 05 AULA 05 –– JAVA BÁSICOJAVA BÁSICO
�� MonitoriaMonitoria
AULA 06/07 AULA 06/07 –– JAVA BÁSICOJAVA BÁSICO
8/30/2010
46
switch(expressao) 
{
case rotulo1:
Comandos1
break;
case rotulo2:
Comandos2
break;
...
default:
Comandos
}
O Comando O Comando switchswitch
Para executar um Para executar um switchswitch
–– AvaliaAvalia--se se expressaoexpressao
–– ExecutaExecuta--se os comandos do se os comandos do 
case case cujo rótulo é igual ao cujo rótulo é igual ao 
valor resultante da valor resultante da 
expressãoexpressão
–– ExecutaExecuta--se os comandos de se os comandos de 
default default caso o valor caso o valor 
resultante não seja igual a resultante não seja igual a 
nenhum rótulo nenhum rótulo 
switch(expressao) {
case rotulo1:
Comandos1
break;
case rotulo2:
Comandos2
break;
...
default:
Comandos
}
O tipo de O tipo de expressaoexpressao só pode só pode 
ser: ser: charchar, byte, short, , byte, short, intint
Os rótulos são constantes Os rótulos são constantes 
diferentesdiferentes
Existe no máximo uma cláusula Existe no máximo uma cláusula 
default default (é opcional)(é opcional)
Os tipos dos rótulos têm que Os tipos dos rótulos têm que 
ser o mesmo de ser o mesmo de expressaoexpressao
O Comando O Comando switchswitch
8/30/2010
47
switch(expressao) {
case rotulo1:
Comandos1
break;
case rotulo2: 
Comandos2
break;
...
default:
Comandos
}
Váriosrótulos podem estar Vários rótulos podem estar 
associados ao mesmo comandoassociados ao mesmo comando
Os comandos Os comandos break break são são 
opcionais:opcionais:
Sem o Sem o break break a execução dos a execução dos 
comandos de um rótulo comandos de um rótulo 
continua nos comandos do continua nos comandos do 
próximo, até chegar ao final próximo, até chegar ao final 
ou a um ou a um breakbreak
O Comando O Comando switchswitch
Usando o Comando Usando o Comando switchswitch
switch(resposta) {
case ‘s’: 
retorno = true;
break;
case ‘n’: 
retorno = false;
break;
default: 
retorno = false; 
console.println(“Erro!”);
}
8/30/2010
48
ExercícioExercício
�� Escreva um programa em Java para implementar Escreva um programa em Java para implementar 
as quatro operações aritméticas +, as quatro operações aritméticas +, --, x e , x e ÷÷÷÷÷÷÷÷
8/30/2010
49
Qual o resultado se digitarmosQual o resultado se digitarmos
22
++
33
no programa ao lado?no programa ao lado?
Faltam os Faltam os breakbreak
Estrutura de RepetiçãoEstrutura de Repetição
�� WhileWhile;;
�� Do / Do / WhileWhile;;
�� For;For;
8/30/2010
50
WhileWhile
A execução das instruções vai continuar até que uma A execução das instruções vai continuar até que uma 
condição seja verdadeira.condição seja verdadeira.
Vejamos a sintaxe do laço de repetição Vejamos a sintaxe do laço de repetição WhileWhile::
whilewhile(teste condicional)(teste condicional)
comando1; comando1; 
whilewhile(teste condicional(teste condicional){){
comando1;comando1;
comando2;comando2;
}}
Exemplo:Exemplo:
classclass Exemplo{Exemplo{
publicpublic staticstatic voidvoid mainmain(String (String argsargs[][]){){
intint num=10;num=10;
whilewhile(num<1500)(num<1500)
num*=10;num*=10;
System.System.out.println(“out.println(“Valor de num: “ +num);Valor de num: “ +num);
}}
} } 
8/30/2010
51
Ímpares Ímpares -- SoluçãoSolução
Fatorial Fatorial –– SoluçãoSolução
8/30/2010
52
Do / WhileDo / While
AA diferençadiferença dodo comandocomando WhileWhile parapara oo comandocomando do/do/whilewhile éé
aoao utilizarmosutilizarmos do/do/whilewhile teremosteremos osos comandoscomandos executadosexecutados aoao
menosmenos umauma vezvez.. IssoIsso aconteceráacontecerá mesmomesmo queque aa condiçãocondição nãonão
sejaseja verdadeiraverdadeira nono inícioinício dodo comandocomando..
SintaxeSintaxe::
do{do{
ComandoComando11;;
}} whilewhile (condição)(condição);;
Do / Do / WhileWhile -- ExemploExemplo
Poderia usar do-while aqui também,
pois estou inicializando resposta com ‘S’
8/30/2010
53
ForFor
for(for(inicinic.; condição; .; condição; expr.expr.de iteração){de iteração){
Comandos1Comandos1
}}
Comandos1Comandos1
1
1
1
1
1 1
1
1
1
2
1
1
1
1
3
1
1
1
1
4
1
1
1
1
5 false
true
Expressão condicionalExpressão condicional: : refererefere--se a um teste que será se a um teste que será 
executado e deverá retornar um valor booleano.executado e deverá retornar um valor booleano.
classclass Exemplo{Exemplo{
publicpublic staticstatic voidvoid mainmain(String (String argsargs[]){[]){
intint a=3;a=3;
for(a=9; a<15; a++){for(a=9; a<15; a++){
System.System.out.println(“a=“+a)out.println(“a=“+a);;
}}
}}
} } 
9
10
11
12
13
14
Expressão de iteração: indicamos o que deverá ocorrer após 
cada execução do corpo do laço de repetição. Ela sempre será 
processada após o corpo do laço a ser executado.
8/30/2010
54
classclass Exemplo{Exemplo{
publicpublic staticstatic voidvoid mainmain(String (String argsargs[][])) {{
for(for(intint a=1,b=10;((a<10)&&(b>5));a++,ba=1,b=10;((a<10)&&(b>5));a++,b----){){
System.System.out.println(“a=“+a)out.println(“a=“+a);;
System.System.out.println(“b=“+b)out.println(“b=“+b);;
}}
}}
} } 
a=1
b=10
a=2
b=9
a=3
b=8
a=4
b=7
a=5
b=6
for(inic.; condição; expr.de iteração){for(inic.; condição; expr.de iteração){
Comandos1Comandos1
}}
Comandos1Comandos1
1
1
1
1
1 1
1
1
1
2
1
1
1
1
3
1
1
1
1
4
1
1
1
1
5 false
true
ProgramProgram Ímpares usando ‘for’Ímpares usando ‘for’
8/30/2010
55
Compare as duas soluções!Compare as duas soluções!
Declaração e inicialização de variáveis: Declaração e inicialização de variáveis: nessa primeira nessa primeira 
parte podemos declarar e inicializar uma ou mais variáveis, parte podemos declarar e inicializar uma ou mais variáveis, 
quando houver, conforme a seguirquando houver, conforme a seguir::
for(for(intint a=1,b=1;......){ a=1,b=1;......){ }}
È È importante lembrarmos que a declaração e a importante lembrarmos que a declaração e a 
inicialização de variáveis acontecem sempre antes de inicialização de variáveis acontecem sempre antes de 
outros comandos. Ainda, elas acontecem apenas uma vez outros comandos. Ainda, elas acontecem apenas uma vez 
no laço de repetição, sendo que o teste booleano e a no laço de repetição, sendo que o teste booleano e a 
expressão de iteração são executadas a cada laço do expressão de iteração são executadas a cada laço do 
programaprograma
for(for(inicinic.; condição; .; condição; expr.expr.de iteração){de iteração){
Comandos1Comandos1
}}
Comandos1Comandos1
1
1
1
1
1 1
1
1
1
2
1
1
1
1
3
1
1
1
1
4
1
1
1
1
5
8/30/2010
56
ExercícioExercício
�� Ler um valor inteiro positivo N e calcularLer um valor inteiro positivo N e calcular
i2
i=1
N
∑ =12 + 22 + ...+ N 2
SoluçãoSolução
8/30/2010
57
Questão de Questão de MiniprovaMiniprova
Ler dois valores reais x e y positivos e menores que 1. Ler dois valores reais x e y positivos e menores que 1. 
Calcular e imprimir o valor da série S, dado por: Calcular e imprimir o valor da série S, dado por: 
Obs1: o processo de soma termina quando for Obs1: o processo de soma termina quando for 
encontrado o valor de um termo < 0.001encontrado o valor de um termo < 0.001
Obs2: note o uso intercalado dos sinais de + e Obs2: note o uso intercalado dos sinais de + e –– na na 
sériesérie
s = x × y −
x
2 × y 3
(x + y)2×3 +
x
3 × y 5
(x + y)3×5 −
x
4 × y 7
(x + y)4×7 + ...
8/30/2010
58
AULA 07 AULA 07 –– JAVA BÁSICOJAVA BÁSICO
�� MonitoriaMonitoria
Comando Comando BreakBreak
�� Quando Quando utilizado em laço de repetição, causa utilizado em laço de repetição, causa 
uma interrupção imediata do mesmo, continuando uma interrupção imediata do mesmo, continuando 
a execução do programa na próxima linha após o a execução do programa na próxima linha após o 
laço. Isso acontece caso a condição imposta seja laço. Isso acontece caso a condição imposta seja 
atendida.atendida.
classclass Exemplo{Exemplo{
publicpublic staticstatic voidvoid mainmain(String (String argsargs[]){[]){
for(for(intint i=1;i<11;++i){i=1;i<11;++i){
ifif(i==5) (i==5) breakbreak;;
System.System.out.println(“out.println(“Valor de i=“+i);Valor de i=“+i);
}}
System.System.out.println(“out.println(“Próxima linha após o Próxima linha após o 
loop”);loop”);
}}
} } 
8/30/2010
59
Comando ContinueComando Continue
�� ÈÈ utilizadoutilizado somentesomente emem laçoslaços dede repetiçãorepetição.. QuandoQuando eleele
éé executado,executado, oo laçolaço voltavolta imediatamenteimediatamente parapara oo testeteste
dede condiçãocondição dodo laçolaço dede repetiçãorepetição.. Normalmente,Normalmente,
utilizamosutilizamos oo comandocomando continuecontinue emem umum testeteste ifif..
class Exemplo{class Exemplo{
public static void main(String args[]){public static void main(String args[]){
int num=0;int num=0;
while (num<10){while (num<10){
++num;++num;
if (num==5){if (num==5){
continue;continue;
}}
System.out.println(“Valor num=>”+ num);System.out.println(“Valor num=>”+ num);
}}
} } 
}}
public int myMethod(int x) {
int sum = 0;
outer: for (int i=0; i<x; i++) {
inner: for (int j=i; j<x; j++) {
sum++;
if (j==1) continue;
if (j==2) continue outer;
if (i==3) break;
if (j==4) break outer;
}
}
return sum;
}
8/30/2010
60
Tarefa de CasaTarefa de Casa
Escreva um aplicativo que calcula os quadrados e cubos Escreva um aplicativo que calcula os quadrados e cubos 
dos números de 0 a 10 e imprime osvalores resultantes dos números de 0 a 10 e imprime os valores resultantes 
no formato da tabela como segue:no formato da tabela como segue:
NumberNumber SquareSquare CubeCube
00 00 00
11 11 11
22 44 88
33 99 2727
44 11 6464
55 22 125125
66 3636 216216
77 44 343343
88 6464 512512
99 8181 729729
1010 100100 10001000
8/30/2010
61
TiposTipos PrimitivosPrimitivos -- CastingCasting
�� Casting cria um novo valor e permite que ele seja tratado Casting cria um novo valor e permite que ele seja tratado 
como um tipo diferente de sua definição original como um tipo diferente de sua definição original 
�� Java é uma linguagem fortemente Java é uma linguagem fortemente tipadatipada
–– Atribuir um valor errado pode resultar em um erro de Atribuir um valor errado pode resultar em um erro de 
compilação ou uma compilação ou uma exceçãoexceção na JVMna JVM
�� A JVM pode, implicitamente, promover um tipo mais A JVM pode, implicitamente, promover um tipo mais 
restrito em um tipo com maior amplitude restrito em um tipo com maior amplitude 
�� Para restringir o tipo mais amplo você Para restringir o tipo mais amplo você 
deve fazer o deve fazer o castcast explicitamenteexplicitamente
int a, b;
short c;
a = b + c;
int d;
short e;
e = (short)d;
double f;
long g;
f = g;
g = f; //error
TiposTipos PrimitivosPrimitivos -- CastingCasting
�� Multiplicar um Multiplicar um integerinteger por um por um doubledouble –– resultado resultado 
será tratado como um será tratado como um doubledouble..
�� Operações binárias em valores numéricos de tipos Operações binárias em valores numéricos de tipos 
diferentes serão tratados da seguinte maneira:diferentes serão tratados da seguinte maneira:
–– Se qualquer um dos Se qualquer um dos operandosoperandos do tipo do tipo doubledouble, então o , então o 
outro será convertido para outro será convertido para doubledouble..
–– Caso contrário, se qualquer um dos Caso contrário, se qualquer um dos operandosoperandos do tipo do tipo 
floatfloat, o outro será convertido para , o outro será convertido para floatfloat..
–– Caso contrário, se qualquer um dos Caso contrário, se qualquer um dos operandosoperandos do tipo do tipo 
longlong, o outro será convertido para , o outro será convertido para long.long.
–– Caso contrário, ambos os Caso contrário, ambos os operandosoperandos serão convertidos serão convertidos 
para para int.int.
8/30/2010
62
Casting Casting ImplícitoImplícito vsvs.. ExplícitoExplícito
�� Casting Casting implícitoimplícito éé automáticoautomático quandoquando nenhumanenhuma perdaperda de de 
informaçãoinformação éé possívelpossível
–– byte byte �� short short �� intint �� long long �� float float �� doubledouble
�� Casting Casting explícitoexplícito éé necessárionecessário quandoquando existeexiste umauma perdaperda
potencialpotencial de de exatidãoexatidão
long p = (long) 12345.56;
int g = p;
char c = ‘t’;
int j = c; 
short k = c; 
short k = (short) c; 
float f = 12.35; 
ok! p = 12345
Ilegal! Apesar de um int suportar o valor 12345
Casting automático!
Ilegal! Não faz casting automático de caractere para um valor 
short (e vice-versa), mesmo que o tamanho dos tipos sejam iguais.
ok! Casting Explícito!
Ilegal! 12.35 é um double! Para corrigir, colocar 12.35F!
Se fosse apenas 12 estaria correto, pois faria o casting de inteiro 
para float
CastingCasting
�� É possível arredondar (É possível arredondar (roundround) um número de ponto ) um número de ponto 
flutuante para o inteiro mais próximo usando o método flutuante para o inteiro mais próximo usando o método 
MathMath.round.round::
doubledouble x = 9.997;x = 9.997;
intint nxnx = (= (intint) ) Math.round(xMath.round(x); ); 
// // nxnx = 10= 10
8/30/2010
63
ComentáriosComentários
�� Three kinds of comments:Three kinds of comments:1. // The rest of the line is a comment
// No line breaks.
2. /* Everything between 
is a comment */ 
3. /** Everything between 
* is a javadoc comment */

Continue navegando