Você está na página 1de 21

Curso Java Starter

www.t2ti.com
1

Curso Java Starter


Apresentao

O Curso Java Starter foi projetado com o objetivo de ajudar quelas pessoas que tm uma base de lgica de programao e desejam entrar no mercado de trabal o sabendo Java! " estrutura do curso # formada por mdulos em $%& e por mini'cursos em v(deo) O aluno deve bai*ar esse material e estud+'lo) %eve reali,ar os e*erc(cios propostos) -odas as d.vidas devem ser enviadas para a lista de discusso que est+ dispon(vel para inscrio na p+gina do Curso Java Starter no site ///)t0ti)com) "s d.vidas sero respondidas pelos instrutores "lbert 1ije! Cl+udio de 2arros e 3iguel 4ojiio! al#m dos demais participantes da lista) 5osso objetivo # que aps o estudo do Curso Java Starter o aluno no ten a dificuldades para acompan ar um curso avanado onde poder+ aprender a desenvolver aplicativos para 6eb! utili,ando tecnologias como Servlets e JS$ e frame/or7s como Struts e JS&! al#m do desenvolvimento para dispositivos mveis) "lbert 1ije trabal a com inform+tica desde 1889) %urante esse per(odo j+ trabal ou com v+rias linguagens de programao: Clipper! $;$! %elp i! C! Java! etc) "tualmente mant#m o site ///)alberteije)com) Cl+udio de 2arros # -ecnlogo em $rocessamento de %ados) 3iguel 4ojiio # bac arel em Sistemas de <nformao! profissional certificado Java =SCJ$ 1)>?) O curso Java Starter surgiu da id#ia dos trs amigos que trabal am juntos em uma instituio financeira de grande porte)

www.t2ti.com
0

Curso Java Starter

Mdulo

02
Introduo
seus projetos Java)

Tipos Primitivos, Operadores e Controle de Fluxo

Se voc est+ ac ando essa parte do curso muito terica! no se preocupe com isso) @oc vai usar quase tudo que est+ sendo visto aqui quando for criar uma aplicao Java! seja ela des7top! para /eb ou mobile) "ssista aos mini'cursos 5et2eans e 1clipe para observar como instalar e utili,ar essas <%1s) @oc pode escol er qualquer umas das duas para desenvolver os

Tipos de Dados
Observe a tabela a seguir! sobre os tipos de dados) 1sses tipos so con ecidos como -ipos de %ados $rimitivos) Como podemos observar a linguagem Java oferece diversos tipos de dados com os quais podemos trabal ar) ;+ basicamente duas categorias em que se encai*am os tipos de dados: tipos primitivos e tipos de referncias) Os tipos primitivos correspondem a dados mais simples ou escalares! enquanto os tipos de referncias consistem em arraAs! classes e interfaces) 1stes sero vistos nos mdulos subseqBentes) @amos a uma descrio curta sobre cada um dos tipos:

Tipo
boolean c ar bAte s ort

Descrio
$ode ser contido em 1 bit! por#m o seu taman o no # precisamente definido) "ssume os valores true ou false) Caractere em notao Cnicode de 1D bits) Serve para arma,enar dados alfanum#ricos) -amb#m pode ser usado como um dado inteiro com valores na fai*a entre E e D>>9>) <nteiro de F bits em notao de complemento de dois) $ode assumir valores entre '0GH'10F e 0G'1H10G) <nteiro de 1D bits em notao de complemento de dois) Os valores poss(veis

www.t2ti.com
9

Curso Java Starter


cobrem a fai*a de '0'1>H'90)GDF a 01>'1H90)GDG <nteiro de 90 bits em notao de complemento de dois) $ode assumir valores entre '091H0)1IG)IF9)DIF e 091'1H0)1IG)IF9)DIG) <nteiro de DI bits em notao de complemento de dois) $ode assumir valores entre '0D9 e 0D9'1) Jepresenta n.meros em notao de ponto flutuante normali,ada em preciso simples de 90 bits em conformidade com a norma <111 G>I'18F>) O menor valor positivo represent+vel por esse tipo # 1)IE098FIDe'ID e o maior # 9)IE0F09IGeK9F) I bAtes de taman o e 09 d(gitos bin+rios de preciso) Jepresenta n.meros em notao de ponto flutuante normali,ada em preciso dupla de DI bits em conformidade com a norma <111 G>I'18F>) O menor valor positivo represent+vel # I)8IED>DI>FI10ID>IIe'90I e o maior # 1)G8GD8919IFD091>GeK9EF) F bAtes de taman o e >0 d(gitos bin+rios de preciso) $ara entendermos o comportamento dos tipos acima vamos analis+'los em um programa) Observe atentamente o programa abai*o) 5o passe adiante sem compreender cada lin a desse programa) 1le est+ todo comentado) 1ssa classe est+ em ane*o para que voc a abra e teste sua e*ecuo no 5etbeans ou no 1clipse)
public class TiposPrimitivos { public static void main(String[] args) { /* Declaramos 8 variveis. Exatamente o mesmo n mero !os tipos primitivos !o "ava. #a!a varivel $ !e %m !os tipos. */ boolean &o' char c' byte &' short s' int i' long l' float (' double !' /* )tri&%*mos o valor +, - varivel c. /%e $ !o tipo c0ar. 12S 3mportante4 1 tipo c0ar tam&$m $ %m inteiro5 6o entanto $ %m inteiro /%e (a7 re(er8ncia a ta&ela 9nico!e. /%e cont$m +,,:, sim&olos. */ c ; +,' S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=c0ar=)' /*

int long

float

double

www.t2ti.com
I

Curso Java Starter


6ote a !i(eren>a entre a impress?o !as !%as lin0as a&aixo4 */ S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=valor !e c como c0ar ; = @ c)' S<stem.out.print((=valor !e c como n%mero ; A! Bn=.(int)c)' S<stem.out.println(=CCCCCCCCCCCCCCCCCCCCCCCCCCCCC=)' /* Sa*!a !a impress?o4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; c0ar ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; valor !e c como c0ar ; ) valor !e c como n%mero ; +, CCCCCCCCCCCCCCCCCCCCCCCCCCCCC 3nteressante notar /%e al$m !o println voc8 tam&$m po!e %sar o print( /%e apren!emos l no #. Dale a/%i t%!o /%e apren!emos no EF!%lo G em rela>?o - (%n>?o print(. */ /* )gora vamos tra&al0ar com os o%tros tipos inteiros4 &<te. s0ort e int. DeHa /%e estamos tra&al0an!o com o valor GI e /%e atri&%*mos esse valor - varivel &. /%e $ !o tipo &<te. #omo esse valor =ca&e= em %m s0ort e em %m int n?o 0 pro&lema nen0%m /%an!o atri&%*mos o valor !e & - varivel s (s0ort) e o valor !e s - varivel i (int) */ & ; GI' s ; &' i ; s' S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=inteiros=)' S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=i ; s ; & ; =@i)' /* Sa*!a !a impress?o4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; inteiros ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; i ; s ; & ; GI */ /* )gora m%ltiplicamos i por GII e atri&%imos o total !essa m%ltiplica>?o ao prFprio i. */ i *; GII' S<stem.out.println(=novo valor !e i ; =@i)'

www.t2ti.com
>

Curso Java Starter


/* Sa*!a !a impress?o4 novo valor !e i ; GIII */ /* 1l0e para a lin0a !e cF!igo a&aixo com m%ita aten>?o. E% tento colocar o valor !e i em &. mas o "ava n?o !eixa. Preciso ent?o (a7er %m casting (convers?o) expl*cito. )ntes !a varivel i e% insiro entre par8nteses o tipo !e !a!o para o /%al e% /%ero convert8Cla. Jem&reCse /%e acima e% converti !e &<te para s0ort e !e s0ort para int e isso n?o (oi necessrio. 6o entanto. essa convers?o acima tam&$m (oi %m casting. sF /%e (oi %m casting impl*cito. K%an!o e% reali7o a convers?o a&aixo algo vai !ar erra!o. 3magine /%e voc8 pegasse GI copos !e s%co !e laranHa e Hogasse o cote !o !os GI copos em %ma Harra. Tran/%ilo. sem pro&lemas5 )gora imagine voc8 pegan!o o conte !o !a Harra e Hogan!o em apenas %m !os copos. Laver %ma per!a consi!ervel !e s%co5 Depois !a convers?o !e int para &<te a&aixo. on!e at%almente o valor !e i $ GIII. o valor !e & ser CMN5 DeHa mais a&aixo por/%e isso acontece. */ & ; (byte)i' S<stem.out.println(=novo valor !e & ; =@&)' /* Sa*!a !a impress?o4 novo valor !e & ; CMN */ /* 1 /%e ocorre $ /%e no l%gar !e o "ava lan>ar %ma exce>?o o% converter para 7ero ele retira a parte &inria !o int e !eixa apenas a !o &<te e apresenta o /%e resto%. 1&serve o es/%ema a&aixo4 i ; GIII em &inrio CCO IIIIIIII IIIIIIII IIIIIIGG GGGIGIII & ; GIII em &inrio CCO CCCCCCCC CCCCCCCC CCCCCCCC GGGIGIII DeHa /%e &oa parte !o n mero $ per!i!o. Se voc8 pegar o /%e so&ro% no & e (i7er %ma convers?o !e &inrio para !ecimal %san!o complemento !e !ois vai c0egar ao n mero CMN. Portanto. sai&a /%e o "ava vai !eixar voc8 (a7er esse tipo !e convers?o por/%e ele ac0a /%e voc8. programa!or. sa&e /%e po!er per!er &its nessa convers?o5 */

www.t2ti.com
D

Curso Java Starter

/* )&aixo simplesmente inserimos o valor !o int em %m long /%e $ o !o&ro !e %m int. 1% seHa. sem pro&lemas5 */ l ; i' S<stem.out.println(=valor !e l ; =@l)' S<stem.out.println(=CCCCCCCCCCCCCCCCCCCCCCCCCCCCC=)' /* Sa*!a !a impress?o4 valor !e l ; GIII CCCCCCCCCCCCCCCCCCCCCCCCCCCCC */ /* #0egamos aos n meros com ponto (l%t%ante (casas !ecimais). */ S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=ponto (l%t%ante=)' S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' ! ; GM,.:M' S<stem.out.println(=valor !e ! ; = @ !)' ! ; GM,.:M!' S<stem.out.println(=valor !e ! ; = @ !)' ! ; GM,.:M(' S<stem.out.println(=valor !e ! ; = @ !)' /* no primeiro caso atri&%imos GM,.:M - variavel !. sem pro&lemas. (%nciona legal. como po!emos ver na Sa*!a !a impress?o. Jogo !epois atri&%imos GM,.:M!. Eas pra /%e serve esse =!= !epois !o valorP 3n!ica /%e esto% a(irman!o para o "ava /%e a constante (GM,.:M) $ %m !o%&le. 1s !ois casos acima s?o i!8nticos. #omo assimP Para o "ava. o tipo pa!r?o !e %m literal com ponto (l%t%ante $ !o%&le. Portanto. n?o precisa colocar o =!= !epois !o literal se /%iser /%e ela seHa !o%&le. literal CCO GM,.:M Eas o terceiro caso $ interessante. )tri&%imos varivel ! o seg%inte valor4 GM,.:M(. Dessa ve7 estamos inserin!o %m (loat n%m !o%&le. pro&lema nen0%m. pois o (loat $ :M &it e o !o%&le $ +N &it. Eas. o&serve a Sa*!a !a impress?o. Por /%e o n mero !epois !a casa !ecimal (ico% t?o /%e&ra!oP 3nvestig%e e comente na lista. Sa*!a !a impress?o4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ponto (l%t%ante

www.t2ti.com
G

Curso Java Starter


;;;;;;;;;;;;;;;;;;;;;;;;;;;;; valor !e ! ; GM,.:M valor !e ! ; GM,.:M valor !e ! ; GM,.:GQQQQ+QN8MNMM */ ( ; (float)GM,.:M' S<stem.out.println(=valor !e ( ; = @ !)' ( ; GM,.:M(' S<stem.out.println(=valor !e ( ; = @ !)' ( ; (float)GM,.:M!' S<stem.out.println(=valor !e ( ; = @ !)' S<stem.out.println(=CCCCCCCCCCCCCCCCCCCCCCCCCCCCC=)' /* Eesma coisa /%e (oi (eita com o Do%&le. mas !essa ve7 com o (loat. Jogo no primeiro caso H $ necessrio (a7er %m casting. Jem&reCse4 o tipo pa!r?o !e %m n mero literal em ponto (l%t%ante $ !o%&le. 6o seg%n!o caso na!a $ preciso. 6o terceiro caso novamente a presen>a no casting H /%e estamos in(orman!o explicitamente /%e o literal $ !o tipo !o%&le. R &om lem&rar /%e ao converter !e !o%&le para (loat po!e 0aver per!a !e &its. Perg%nta4 por /%e to!os os valores sa*ram t?o /%e&ra!os. em contraste com o !o%&leP 3nvestig%e e comente na lista. Sa*!a !a impress?o4 valor !e ( ; GM,.:GQQQQ+QN8MNMM valor !e ( ; GM,.:GQQQQ+QN8MNMM valor !e ( ; GM,.:GQQQQ+QN8MNMM CCCCCCCCCCCCCCCCCCCCCCCCCCCCC */ /* )&or!aremos agora o tipo &ooleano. */ S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=&ooleano=)' S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' &o ; true' S<stem.out.println(=valor !e &o ; = @ &o)' &o ; (G O M)' S<stem.out.println(=valor !e &o ; = @ &o)' &o ; (( ;; !)' S<stem.out.println(=valor !e &o ; = @ &o)' S<stem.out.println(=CCCCCCCCCCCCCCCCCCCCCCCCCCCCC=)' /*

www.t2ti.com
F

Curso Java Starter


1 valor tr%e o% (alse po!e ser atri&%i!o sem pro&lemas. Se atri&%irmos %ma opera>?o - varivel. Essa opera>?o ser avalia!a e se% valor ser arma7ena!o na varivel. 6o caso !e (GOM) sa&emos /%e o res%lta!o ser (alse. Depois testamos se ( $ ig%al a !. 1&serve /%e o opera!or !e teste !e ig%al!a!e $ o ;; (ig%al !%as ve7es). semel0ante - ling%agem #. Salaremos so&re opera!ores mais a (rente. Sa*!a !a impress?o4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; &ooleano ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; valor !e &o ; tr%e valor !e &o ; (alse valor !e &o ; tr%e CCCCCCCCCCCCCCCCCCCCCCCCCCCCC */ S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=&rincan!o com os tipos=)' S<stem.out.println(=;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=)' S<stem.out.println(=posso converter int para (loatP=)' S<stem.out.println(=i antes !a conversao ; = @ i)' S<stem.out.println(=( antes !a conversao ; = @ ()' ( ; i' S<stem.out.println(=i !epois !a conversao ; = @ i)' S<stem.out.println(=( !epois !a conversao ; = @ ()' S<stem.out.println(=CC=)' /* Em nossa primeira =&rinca!eira= com os tipos tentamos converter !e int para (loat. 1&serve atentamente o res%lta!o na sa*!a !e impress?o. Sa*!a !e impress?o4 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; &rincan!o com os tipos ;;;;;;;;;;;;;;;;;;;;;;;;;;;;; posso converter int para (loatP i antes !a conversao ; GIII ( antes !a conversao ; GM,.:M i !epois !a conversao ; GIII ( !epois !a conversao ; GIII.I CC */ ( ; (float)!' S<stem.out.println(=posso converter (loat para intP=)' S<stem.out.println(=i antes !a conversao ; = @ i)' S<stem.out.println(=( antes !a conversao ; = @ ()' i ; (int)(' S<stem.out.println(=i !epois !a conversao ; = @ i)' S<stem.out.println(=( !epois !a conversao ; = @ ()' S<stem.out.println(=CCCCCCCCCCCCCCCCCCCCCCCCCCCCC=)'

www.t2ti.com
8

Curso Java Starter


/* Depois !e nossa primeira =&rinca!eira= o valor !e ( (ico% ig%al ao valor !e i. Por isso atri&%*mos o valor !e ! novamente - varivel (. )gora o /%e /%eremos sa&er $ se $ poss*vel atri&%ir o valor !e %m (loat a %m inteiro. 1 contrrio (oi poss*vel sem casting. Eas !essa ve7 o casting ser necessrio. Eas. al$m !esse !etal0e. o%tra coisa vai ocorrer. Po!e ser !eseHvel o% n?o. #omente na lista o /%e ocorre% nessa convers?o !e (loat para int e em /%e sit%a>?o isso seria !eseHavel. Sa*!a !e impress?o4 posso converter (loat para intP i antes !a conversao ; GIII ( antes !a conversao ; GM,.:M i !epois !a conversao ; GM, ( !epois !a conversao ; GM,.:M CCCCCCCCCCCCCCCCCCCCCCCCCCCCC */ T T

$elo que podemos observar no programa anterior! as conversLes em Java ocorrem da seguinte maneira! sem perda de informao:

Um byte pode ser convertido em um s0ort, int, long, (loat ou !o%&le Um short pode ser convertido em um int, long, (loat ou !o%&le Um char pode ser convertido em um int, long, (loat ou !o%&le Um int pode ser convertido em um long, (loat ou !o%&le Um long pode ser convertido em um (loat ou !o%&le Um float pode ser convertido em um !o%&le

Obseve a imagem seguir:

www.t2ti.com
1E

Curso Java Starter

J+ as conversLes e*pl(citas! o casting! # permitido em todos os tipos =e*ceto o boolean?! mas o programador deve estar ciente que poder+ aver perda de bits)

Operadores
Os operadores em Java so muito parecidos com os da linguagem C) 5o entanto! e*iste alguns operadores novos) "nalise cuidadosamente a tabela abai*o e faa diversos testes com esses operadores para se acostumar com eles) %urante o desenvolvimento de seus sistemas voc utili,ar+! e muito! a maioria desses operadores) Grupo H operadores organi,ados em gruposM Operador H cada um dos operadoresM Precedncia H ordem de precedncia dos operadoresM A H associatividade do operador =esquerda ou direita?M Operando H operandos do operadorM Descrio H descrio da operao) "lguns operadores relacionados abai*o no sero comentados agora porque so utili,ados com objetos ou tipos referncias! assunto que ser+ estudado mais a frente) 1les esto com a cor da lin a diferente) Os demais j+ podem ser implementados nos e*erc(cios deste mdulo) N importante frisar que voc deve praticar bastante o uso desses operadores) Crie uma classe com um m#todo 3ain! similar a que fi,emos no programa anterior e implemente diversas situaLes onde voc possa analisar o uso de cada um dos

www.t2ti.com
11

Curso Java Starter


operadores) Comente seus resultados e observaLes na lista de discusso) "l#m disso! se surgirem d.vidas! envie'as para a lista)

Grupo
%elimitador %elimitador

Operador
) OP =argumentos?

Precedncia A Operando
1 1 objeto!membro vetor m#todo! lista de argumentos vari+vel 0 % vari+vel vari+vel inteiro booleana 9 % classe! lista de argumentos tipo! qualquer coero I > D 1 1 1 n.mero! n.mero n.mero! n.mero String! qualquer inteiro! inteiro inteiro! inteiro inteiro! inteiro G 1 n.mero! n.mero n.mero! n.mero referncia! tipo

Descrio
acesso a um membro de um objeto ou classe) acesso ao elemento de um vetor acesso a elemento do vetor ps'incremento! ps' decremento pr#'incremento! pr#' decremento mais e menos un+rio complemento de 1 =bin+rio? 5egao cujo resultado # lgico =trueSfalse? criao de objeto converso de tipo multiplicao! diviso e mdulo =resto? adio e subtrao concatenao desl) a esquerda deslocamento a direita com sinal deslocamento a direita com ,eros menor que! menor ou igual a maior que! maior ou igual a verificao de tipo

aritm#tico aritm#tico aritm#tico bin+rio bin+rio classe converso aritm#tico aritm#tico String bin+rio bin+rio bin+rio condicional condicional condicional

KK e '' KK e '' Ke' Q R ne/ =tipo? TSU K' K KH VV WW WWW V VH W WH instanceof

www.t2ti.com
10

Curso Java Starter


condicional condicional condicional condicional bin+rio lgico bin+rio HH RH HH RH X X Y 1E 1 8 1 F 1 primitivo!primitivo igualdade de valores primitivo!primitivo diferena de valores referncia! referncia referncia! referncia inteiro! inteiro booleana! booleana inteiro! inteiro booleana! booleana 11 1 inteiro! inteiro booleana! booleana 10 19 1I 1> 1 1 % booleana! booleana booleana! booleana booleana! qualquer igualdade! endereo dos objetos diferena! endereo de objetos 1 sobre bits 1 booleano ZOJ sobre bits

Grupo
lgico bin+rio lgico lgico lgico condicional atribuio

Operador
Y [ [ XX [[ \: H TH SH UH KH 'H VVH WWH WWWH XH YH [H

Precedncia

A Operando

Descrio
ZOJ =OC e*clusivo? booleano OC sobre bits OC booleano 1 condicional OC condicional operador tern+rio! condicional atribuio com operao

% vari+vel! qualquer atribuio vari+vel! qualquer

1m se tratando de precedncia # bom lembrar que os parnteses podem ser usados para modific+'la) 0 K D T > H 90 =0 K D? T > H IE

Controle de Fluxo
O controle de flu*o # efetuado atrav#s do uso de condicionais! que so

www.t2ti.com
19

Curso Java Starter


estruturas que modificam o flu*o de e*ecuo normal do programa)

if else
Sinta*e:
if (express?o &ooleana) instr%>?oUsimples' if (express?o &ooleana) { instr%>Ves T if (express?o &ooleana) { instr%>Ves T else if (express?o &ooleana) { instr%>Ves T else { instr%>Ves T

]uando e*iste apenas uma instruo aps o if no precisamos abrir um bloco com as c aves) Se e*istirem mais instruLes a abertura do bloco # necess+ria) Se ouver mais de uma condio usa'se o else como podemos observar na segunda coluna acima) @eja o e*emplo abai*o e comente o mesmo na lista de discusso)
if ( ano W I) { S<stem.o%t.println(=6?o $ %m ano5=)' T else if ( (anoAN;;I XX anoAGII5;I) YY (anoANII;;I) ) { S<stem.o%t.println(=R &issexto5=)' T else { S<stem.o%t.println(=6?o $ &issexto5=)' T

!"ile e do !"ile
Sinta*e:
while (expres?o &ooleana) { instr%>Ves' T do { instr%>Ves' T while (expres?o &ooleana )'

5o caso do / ile as instruLes sero e*ecutadas enquanto a e*presso booleana for verdadeira) O do'/ ile e*ecuta a instruo pelo menos uma ve, e continua e*ecutando enquanto a e*presso booleana for verdadeira) Observe os e*emplos seguintes)

www.t2ti.com
1I

Curso Java Starter


//exemplo com Z0ile int x ; I' while (x W GI) { S<stem.out.println (=item = @ x)' x@@' T //exemplo com !oCZ0ile int x ; I' do { S<stem.out.println (=item = @ x)' x@@' T while (x W GI)' //esse $ %m la>o in(inito. Pra /%e ele serveP while ( true ) { if (o&H.7 ;; I) { break' T T

for
Sinta*e:
for ( iniciali7a>?o' expressVes &ooleanas' passo !a repeti>?o ) instr%>?oUsimples' for ( inicializao; expressVes &ooleanas' passo !a repeti>?o ) { instr%>Ves' T

O for pode conter apenas uma instruo no seu corpo) 5este caso no # necess+rio abrir um bloco) <sso # assim porque o for j+ implementa alguns comandos na sua assinatura! ou seja! no seu cabeal o! como a iniciali,ao da vari+vel e o passo da repetio! ou seja! o incrementoSdecremento da vari+vel) @eja os e*emplos:
//esse t &em (cil. for ( int x ; I' x W GI' x@@ ) { S<stem.out.println (=item = @ x)' T //esse H n?o $ t?o simples sF !e ol0ar. for ( int x ; I. int < ; M,' x W GI XX (< A M ;; I)' x@@. < ; < C G ) { S<stem.out.println (x @ <)' T //tam&$m po!emos (a7er %m la>o in(inito com o (or for ( ' ' ) { if (o&H.7 ;; I) { break' T T

www.t2ti.com
1>

Curso Java Starter

#rea$ e continue
@oc deve ter observado que quando fi,emos os laos infinitos com o / ile e com o for utili,amos um comando brea7) $ara que ele serve\ 1ste comando serve para ^quebrar_ o lao! ou seja! ele far+ com que o lao seja interrompido) O comando continue tamb#m influi dentro de um lao) 3as ele no vai quebrar o lao) 1le interrompe aquela iterao do lao e reinicia o bloco com a pr*ima iterao)

%&tulos '#rea$ e continue(

1 se tivermos com um lao dentro de outro e quisermos quebrar o lao mais e*terno\ O brea7 ou continue agem no lao mais interno) 1*iste uma maneira: rotular nossos laos) Observe a imagem a seguir:

www.t2ti.com
1D

Curso Java Starter

s!itc" 'case(
Sinta*e:

switch(seletorUinteiro) { case valorUinteiroUG 4 instr%>Ves' break' case valorUinteiroUM 4 instr%>Ves' break' ... default4 instr%>Ves' T

switch(letra) { case [)[ 4 S<stem.o%t.println(=)=)' break' case [2[ 4 S<stem.o%t.println(=2=)' break' ... default4 S<stem.o%t.println(=P=)' T

S!itc" s trabal a com valores inteiros! incluindo o c ar)

Palavras %eservadas

-oda linguagem possui palavras reservadas e isso no seria diferente em Java) Cma verso mais recente do Java pode ter mais palavras reservadas que uma anterior) " seguir voc pode ver uma imagem com boa parte das palavras reservadas em Java) $esquise e descubra quais palavras reservadas no esto na lista abai*o) Comente na lista)

www.t2ti.com
1G

Curso Java Starter

-ente utili,ar algumas dessas palavras como nome de vari+veis e veja como o compilador Java se comporta) @oc deve ter percebido que no utili,amos um tipo String neste mdulo) O Java possui um tipo String! no entanto! String no Java no # um tipo primitivo) &alaremos sobre String em um mdulo posterior)

)ntrada de Dados
Como eu fao para ler algo que o usu+rio digita no prompt\ Observe o programa abai*o:
//importe a classe Scanner para %tili7ar a leit%ra pelo tecla!o //Similar ao \incl%!e !o # import Hava.%til.Scanner' public class Jeit%ra { public static void main(String[] args) { // crie a varivel !e leit%ra !os !a!os Scanner s ; new Scanner(S<stem.in)' // %se os m$to!os !e leit%ra espec*(icos !o tipo !eseHa!o S<stem.out.print(=!igite %ma lin0a4 =)' String lin0a ; s.nextJine()' // le a lin0a S<stem.out.print(=!igite %m n%mero4 =)' int i ; s.next3nt()' // le %m inteiro S<stem.out.print(=!igite %m n%mero4 =)' double ! ; s.nextDo%&le()' // le %m pontoC(l%t%ante T T

Com o estudo do programa acima j+ d+ para voc solicitar que o usu+rio digite alguma coisa e utili,ar o que o mesmo est+ digitando)

www.t2ti.com
1F

Curso Java Starter


@amos aos to aguardados e*erc(cios)

)xerc*cios
"prenda com quem tamb#m est+ aprendendo! veja e compartil e as suas respostas no nosso &rum: 1*erc(cios ` 3dulo E0 ` -ipos $rimitivos! Operadores e Controle de &lu*o E1 ' 1screva um programa que imprima o resultado das e*pressLes abai*o: a9`0`1K0K1K9 a0*9`I*> a0KD`9SG*8 a 9 U I `F E0 ' 1screva um programa que declare! iniciali,e e imprima as seguintes vari+veis: a <nteiro i de 90 bits com valor 1 a <nteiro j de DI bits com valor 0 a $onto'flutuante p de 90 bits com valor 0E)E a $onto'flutuante q de DI bits com valor 9E)E a 2oolean b com valor verdadeiro a Caracter c com valor b7c E9 ' <mplemente um programa que recebe um n.mero de 1 a G e imprime o dia da semana correspondente) EI ' "ltere o programa do e*erc(cio anterior para ficar recebendo o n.mero dentro de um lao enquanto o n.mero for diferente de E =,ero?) E> ' <mplemente um programa que recebe repetidamente um n.mero de 1 a 10! enquanto esse n.mero for diferente de E =,ero?! e imprime o ms correspondente) ]uando o n.mero estiver fora do intervalo permitido! a mensagem ^ms inv+lido_ dever+ ser e*ibida) ED ' 1screva um lao / ile que e*ecute 0E ve,es! imprimindo o valor da vari+vel * que inicialmente est+ com valor 1E) Converta este lao para um do'/ ile) EG ' 1screva um programa que imprima na tela a soma dos n.meros (mpares entre 1 e 9E e a multiplicao dos n.meros pares entre 1 e 9E) EF ' 1screva um programa que percorra dois laos de E a 1E! um interno ao outro! imprimindo os contadores! e quando estes forem iguais! o programa deve passar pr*ima interao do lao mais e*terno! caso contr+rio! deve imprimir os valores dos contadores dos dois laos) E8 ' %esenvolva um programa que solicita ao usu+rio um n.mero inteiro de no m+*imo I d(gitos) <nverta esse n.mero) 1E ` %esenvolva um programa que dado um n.mero inteiro o programa informe se o mesmo # um n.mero primo)

www.t2ti.com
18

Curso Java Starter


11 ' 1screva um programa em Java que calcula e imprime na tela o sal+rio proporcional de um funcion+rio que trabal ou apenas 5 dias num ms de 00 dias .teis) O n.mero de dias trabal ados bem como o sal+rio integral do funcion+rio devem ser lidos do teclado) O resultado deve ser um n.mero ponto'flutuante) 10 ' 1screva um programa em Java que leia repetidamente um n.mero do teclado at# que seja digitado o n.mero ,ero =E? e determine se o n.mero lido # perfeito ou no! imprimindo o resultado) Cm n.mero # dito perfeito quando # igual a soma dos seus divisores menores do que ele! por e*emplo! D # perfeito! uma ve, que D H 9 K 0 K 1) 19 ` &aa um programa que conten a um menu com I opLes: 1 ` calcular o fatorial de um n.mero dado 0 ` calcular a rai, quadrada de 9 n.meros dados 9 ` imprimir a tabuada completa de 1 a 1E I ` sair do programa 1I ' 1screva quatro instruLes em Java diferentes para adicionar 1 a uma vari+vel inteira *) 1> ' 1screva instruLes Java para reali,ar a seguinte tarefa: atribuir soma de x e + a , e incrementar x por 1 depois do calculo) Cse somente uma instruoM 1D ' 1screva instruLes Java para reali,ar a seguinte tarefa: decrementar a vari+vel x por 1! depois subtrair o resultado da vari+vel total com somente uma instruo) 1G ' <mplemente um programa para calcular a +rea de um trap#,io! onde: H altura b H base menor 2 H base maior drea H = )=bK2??S0 1F ' &ulano aplicou Je 1EE!EE com rendimento de >U ao ms) ]uantos meses sero necess+rios para o capital investido ultrapasse a Je 0EE!EE) %esenvolva um programa que reali,e essa operao) 18 ` &aa um programa que imprima os quadrados dos n.meros inteiros (mpares entre 1> e 9>)

www.t2ti.com
0E

Curso Java Starter


0E ' 1screva um aplicativo que imprime as seguintes formas) @oc pode utili,ar instruLes de sa(da que imprimem um .nico asterisco =T?! um .nico caractere de espao ou uma nova lin a) 3a*imi,e a utili,ao de estruturas de repetio=com estruturas anin adas for? e minimi,e o n.mero de instruLes de sa(da)

* ** *** **** ***** ****** ******* ********

******** ******* ****** ***** **** *** ** *

******** ******* ****** ***** **** *** ** *

* ** *** **** ***** ****** ******* ********

www.t2ti.com
01

Você também pode gostar