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
trabalho sabendo Java,
A estrutura do curso formada por mdulos em PDF e por mini-cursos em
vdeo. O aluno deve baixar esse material e estud-lo. Deve realizar os exerccios
propostos. Todas as dvidas devem ser enviadas para a lista de discusso que est
disponvel para inscrio na pgina do Curso Java Starter no site www.t2ti.com. As
dvidas sero respondidas pelos instrutores Albert Eije, Cludio de Barros e Miguel
Kojiio, alm dos demais participantes da lista.
Nosso objetivo que aps o estudo do Curso Java Starter o aluno no tenha
dificuldades

para

acompanhar

um

curso

avanado

onde

poder

aprender

desenvolver aplicativos para Web, utilizando tecnologias como Servlets e JSP e


frameworks como Struts e JSF, alm do desenvolvimento para dispositivos mveis.
Albert Eije trabalha com informtica desde 1993. Durante esse perodo j
trabalhou com vrias linguagens de programao: Clipper, PHP, Delphi, C, Java, etc.
Atualmente mantm o site www.alberteije.com.
Cludio de Barros Tecnlogo em Processamento de Dados.
Miguel Kojiio bacharel em Sistemas de Informao, profissional certificado
Java (SCJP 1.5).
O curso Java Starter surgiu da idia dos trs amigos que trabalham juntos em
uma instituio financeira de grande porte.

www.t2ti.com
2

Curso Java Starter

Mdulo

02

Tipos Primitivos, Operadores


e Controle de Fluxo

Introduo
Se voc est achando essa parte do curso muito terica, no se preocupe com
isso. Voc vai usar quase tudo que est sendo visto aqui quando for criar uma
aplicao Java, seja ela desktop, para web ou mobile.
Assista aos mini-cursos NetBeans e Eclipe para observar como instalar e
utilizar essas IDEs. Voc pode escolher qualquer umas das duas para desenvolver os
seus projetos Java.

Tipos de Dados
Observe a tabela a seguir, sobre os tipos de dados. Esses tipos so conhecidos
como Tipos de Dados Primitivos. Como podemos observar a linguagem Java oferece
diversos tipos de dados com os quais podemos trabalhar. H basicamente duas
categorias em que se encaixam 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 arrays, classes e interfaces. Estes
sero vistos nos mdulos subseqentes.
Vamos a uma descrio curta sobre cada um dos tipos:

Tipo
boolean
char
byte
short

Descrio
Pode ser contido em 1 bit, porm o seu tamanho no precisamente
definido. Assume os valores true ou false.
Caractere em notao Unicode de 16 bits. Serve para armazenar dados
alfanumricos. Tambm pode ser usado como um dado inteiro com valores
na faixa entre 0 e 65535.
Inteiro de 8 bits em notao de complemento de dois. Pode assumir valores
entre -27=-128 e 27-1=127.
Inteiro de 16 bits em notao de complemento de dois. Os valores possveis

www.t2ti.com
3

Curso Java Starter

int
long

float

double

cobrem a faixa de -2-15=-32.768 a 215-1=32.767


Inteiro de 32 bits em notao de complemento de dois. Pode assumir
valores entre -231=2.147.483.648 e 231-1=2.147.483.647.
Inteiro de 64 bits em notao de complemento de dois. Pode assumir
valores entre -263 e 263-1.
Representa nmeros em notao de ponto flutuante normalizada em
preciso simples de 32 bits em conformidade com a norma IEEE 754-1985.
O menor valor positivo representvel por esse tipo 1.40239846e-46 e o
maior 3.40282347e+38. 4 bytes de tamanho e 23 dgitos binrios de
preciso.
Representa nmeros em notao de ponto flutuante normalizada em
preciso dupla de 64 bits em conformidade com a norma IEEE 754-1985. O
menor valor positivo representvel 4.94065645841246544e-324 e o
maior 1.7976931348623157e+308. 8 bytes de tamanho e 52 dgitos
binrios de preciso.
Para entendermos o comportamento dos tipos acima vamos analis-los em um

programa. Observe atentamente o programa abaixo. No passe adiante sem


compreender cada linha desse programa. Ele est todo comentado. Essa classe est
em anexo para que voc a abra e teste sua execuo no Netbeans ou no Eclipse.
public class TiposPrimitivos {
public static void main(String[] args) {
/*
Declaramos 8 variveis. Exatamente o mesmo nmero
dos tipos primitivos do Java. Cada varivel de
um dos tipos.
*/
boolean bo;
char c;
byte b;
short s;
int i;
long l;
float f;
double d;
/*
Atribumos o valor 65 varivel c, que do tipo
char.
OBS Importante: O tipo char tambm um inteiro!
No entanto um inteiro que faz referncia a tabela
Unicode, que contm 65535 simbolos.
*/
c = 65;
System.out.println("=============================");
System.out.println("char");
/*

www.t2ti.com
4

Curso Java Starter


Note a diferena entre a impresso das duas linhas
abaixo:
*/
System.out.println("=============================");
System.out.println("valor de c como char = " + c);
System.out.printf("valor de c como numero = %d \n",(int)c);
System.out.println("-----------------------------");
/*
Sada da impresso:
=============================
char
=============================
valor de c como char = A
valor de c como numero = 65
----------------------------Interessante notar que alm do println voc tambm
pode usar o printf que aprendemos l no C. Vale
aqui tudo que aprendemos no Mdulo 1 em relao
funo printf.
*/
/*
Agora vamos trabalhar com os outros tipos inteiros:
byte, short e int.
Veja que estamos trabalhando com o valor 10 e que
atribumos esse valor varivel b, que do tipo
byte. Como esse valor "cabe" em um short e em um int
no h problema nenhum quando atribumos o valor de b
varivel s (short) e o valor de s varivel i (int)
*/
b = 10;
s = b;
i = s;
System.out.println("=============================");
System.out.println("inteiros");
System.out.println("=============================");
System.out.println("i = s = b = "+i);
/*
Sada da impresso:
=============================
inteiros
=============================
i = s = b = 10
*/
/*
Agora multiplicamos i por 100 e atribuimos o total
dessa multiplicao ao prprio i.
*/
i *= 100;
System.out.println("novo valor de i = "+i);

www.t2ti.com
5

Curso Java Starter


/*
Sada da impresso:
novo valor de i = 1000
*/
/*
Olhe para a linha de cdigo abaixo com muita
ateno. Eu tento colocar o valor de i em b, mas o
Java no deixa. Preciso ento fazer um casting
(converso) explcito. Antes da varivel i eu insiro
entre parnteses o tipo de dado para o qual eu
quero convert-la. Lembre-se que acima eu converti
de byte para short e de short para int e isso no
foi necessrio. No entanto, essa converso acima
tambm foi um casting, s que foi um casting implcito.
Quando eu realizo a converso abaixo algo vai dar errado.
Imagine que voc pegasse 10 copos de suco de laranja
e jogasse o cotedo dos 10 copos em uma jarra. Tranquilo,
sem problemas! Agora imagine voc pegando o contedo da
jarra e jogando em apenas um dos copos. Haver uma
perda considervel de suco!
Depois da converso de int para byte abaixo, onde atualmente
o valor de i 1000, o valor de b ser -24! Veja mais abaixo
porque isso acontece.
*/
b = (byte)i;
System.out.println("novo valor de b = "+b);
/*
Sada da impresso:
novo valor de b = -24
*/
/*
O que ocorre que no lugar de o Java lanar uma exceo
ou converter para zero ele retira a parte binria do int
e deixa apenas a do byte e apresenta o que restou.
Observe o esquema abaixo:
i = 1000 em binrio --> 00000000 00000000 00000011 11101000
b = 1000 em binrio --> -------- -------- -------- 11101000
Veja que boa parte do nmero perdido. Se voc pegar o que
sobrou no b e fizer uma converso de binrio para decimal
usando complemento de dois vai chegar ao nmero -24.
Portanto, saiba que o Java vai deixar voc fazer esse tipo
de converso porque ele acha que voc, programador, sabe
que poder perder bits nessa converso!
*/

www.t2ti.com
6

Curso Java Starter

/*
Abaixo simplesmente inserimos o valor do int em um long
que o dobro de um int. Ou seja, sem problemas!
*/
l = i;
System.out.println("valor de l = "+l);
System.out.println("-----------------------------");
/*
Sada da impresso:
valor de l = 1000
----------------------------*/
/*
Chegamos aos nmeros com ponto flutuante (casas decimais).
*/
System.out.println("=============================");
System.out.println("ponto flutuante");
System.out.println("=============================");
d = 125.32;
System.out.println("valor de d = " + d);
d = 125.32d;
System.out.println("valor de d = " + d);
d = 125.32f;
System.out.println("valor de d = " + d);
/*
no primeiro caso atribuimos 125.32 variavel d.
sem problemas. funciona legal, como podemos ver
na Sada da impresso.
Logo depois atribuimos 125.32d. Mas pra que serve
esse "d" depois do valor? Indica que estou afirmando
para o Java que a constante (125.32) um double.
Os dois casos acima so idnticos. Como assim? Para
o Java, o tipo padro de um literal com ponto
flutuante double. Portanto, no precisa colocar o
"d" depois do literal se quiser que ela seja double.
literal --> 125.32
Mas o terceiro caso interessante. Atribuimos
varivel d o seguinte valor: 125.32f. Dessa vez estamos
inserindo um float num double. problema nenhum, pois
o float 32 bit e o double 64 bit. Mas, observe a Sada
da impresso. Por que o nmero depois da casa decimal
ficou to quebrado? Investigue e comente na lista.
Sada da impresso:
=============================
ponto flutuante

www.t2ti.com
7

Curso Java Starter


=============================
valor de d = 125.32
valor de d = 125.32
valor de d = 125.31999969482422
*/
f = (float)125.32;
System.out.println("valor de f = " + d);
f = 125.32f;
System.out.println("valor de f = " + d);
f = (float)125.32d;
System.out.println("valor de f = " + d);
System.out.println("-----------------------------");
/*
Mesma coisa que foi feita com o Double, mas dessa
vez com o float.
Logo no primeiro caso j necessrio fazer um casting.
Lembre-se: o tipo padro de um nmero literal em
ponto flutuante double.
No segundo caso nada preciso.
No terceiro caso novamente a presena no casting
j que estamos informando explicitamente que o literal
do tipo double.
bom lembrar que ao converter de double para float
pode haver perda de bits.
Pergunta: por que todos os valores saram to quebrados,
em contraste com o double? Investigue e comente na lista.
Sada da impresso:
valor de f = 125.31999969482422
valor de f = 125.31999969482422
valor de f = 125.31999969482422
----------------------------*/
/*
Abordaremos agora o tipo booleano.
*/
System.out.println("=============================");
System.out.println("booleano");
System.out.println("=============================");
bo = true;
System.out.println("valor de bo = " + bo);
bo = (1 > 2);
System.out.println("valor de bo = " + bo);
bo = (f == d);
System.out.println("valor de bo = " + bo);
System.out.println("-----------------------------");
/*

www.t2ti.com
8

Curso Java Starter


O valor true ou false pode ser atribuido sem problemas.
Se atribuirmos uma operao varivel. Essa operao
ser avaliada e seu valor ser armazenado na varivel.
No caso de (1>2) sabemos que o resultado ser false.
Depois testamos se f igual a d. Observe que o operador
de teste de igualdade o == (igual duas vezes), semelhante
linguagem C. Falaremos sobre operadores mais a frente.
Sada da impresso:
=============================
booleano
=============================
valor de bo = true
valor de bo = false
valor de bo = true
----------------------------*/
System.out.println("=============================");
System.out.println("brincando com os tipos");
System.out.println("=============================");
System.out.println("posso converter int para float?");
System.out.println("i antes da conversao = " + i);
System.out.println("f antes da conversao = " + f);
f = i;
System.out.println("i depois da conversao = " + i);
System.out.println("f depois da conversao = " + f);
System.out.println("--");
/*
Em nossa primeira "brincadeira" com os tipos tentamos
converter de int para float. Observe atentamente o
resultado na sada de impresso.
Sada de impresso:
=============================
brincando com os tipos
=============================
posso converter int para float?
i antes da conversao = 1000
f antes da conversao = 125.32
i depois da conversao = 1000
f depois da conversao = 1000.0
-*/
f = (float)d;
System.out.println("posso converter float para int?");
System.out.println("i antes da conversao = " + i);
System.out.println("f antes da conversao = " + f);
i = (int)f;
System.out.println("i depois da conversao = " + i);
System.out.println("f depois da conversao = " + f);
System.out.println("-----------------------------");

www.t2ti.com
9

Curso Java Starter


/*
Depois de nossa primeira "brincadeira" o valor de
f ficou igual ao valor de i. Por isso atribumos o
valor de d novamente varivel f.
Agora o que queremos saber se possvel atribuir
o valor de um float a um inteiro. O contrrio foi
possvel sem casting. Mas dessa vez o casting ser
necessrio. Mas, alm desse detalhe, outra coisa
vai ocorrer. Pode ser desejvel ou no. Comente na
lista o que ocorreu nessa converso de float para int
e em que situao isso seria desejavel.
Sada de impresso:
posso converter float para int?
i antes da conversao = 1000
f antes da conversao = 125.32
i depois da conversao = 125
f depois da conversao = 125.32
----------------------------*/
}

Pelo que podemos observar no programa anterior, as converses em Java


ocorrem da seguinte maneira, sem perda de informao:

Um byte pode ser convertido em um short, int, long, float ou double

Um short pode ser convertido em um int, long, float ou double

Um char pode ser convertido em um int, long, float ou double

Um int pode ser convertido em um long, float ou double

Um long pode ser convertido em um float ou double

Um float pode ser convertido em um double

Obseve a imagem seguir:

www.t2ti.com
10

Curso Java Starter

J as converses explcitas, o casting, permitido em todos os tipos (exceto o


boolean), mas o programador deve estar ciente que poder haver perda de bits.

Operadores
Os operadores em Java so muito parecidos com os da linguagem C. No
entanto, existe alguns operadores novos. Analise cuidadosamente a tabela abaixo e
faa diversos testes com esses operadores para se acostumar com eles. Durante o
desenvolvimento de seus sistemas voc utilizar, e muito, a maioria desses
operadores.
Grupo = operadores organizados em grupos;
Operador = cada um dos operadores;
Precedncia = ordem de precedncia dos operadores;
A = associatividade do operador (esquerda ou direita);
Operando = operandos do operador;
Descrio = descrio da operao.
Alguns operadores relacionados abaixo no sero comentados agora porque
so utilizados com objetos ou tipos referncias, assunto que ser estudado mais a
frente. Eles esto com a cor da linha diferente. Os demais j podem ser
implementados nos exerccios deste mdulo.
importante frisar que voc deve praticar bastante o uso desses operadores.
Crie uma classe com um mtodo Main, similar a que fizemos no programa anterior e
implemente diversas situaes onde voc possa analisar o uso de cada um dos

www.t2ti.com
11

Curso Java Starter


operadores.
Comente seus resultados e observaes na lista de discusso. Alm disso, se
surgirem dvidas, envie-as para a lista.

Grupo

Operador

Precedncia A Operando

Delimitador

Delimitador

[]

objeto,membro
vetor

(argumentos)

Descrio
acesso a um membro
de um objeto ou classe.
acesso ao elemento de
um vetor

mtodo, lista de

acesso a elemento do

argumentos

vetor

varivel

ps-incremento, ps-

aritmtico

++ e --

aritmtico

++ e --

aritmtico

+e-

varivel

binrio

inteiro

binrio

booleana

classe

new

converso

(tipo)

aritmtico

*/%

nmero, nmero

aritmtico

+-

nmero, nmero

adio e subtrao

String

+ +=

String, qualquer

concatenao

binrio

<<

inteiro, inteiro

desl. a esquerda

binrio

>>

inteiro, inteiro

binrio

>>>

inteiro, inteiro

condicional

< <=

condicional

> >=

nmero, nmero

condicional

instanceof

referncia, tipo

D varivel

classe, lista de
argumentos
tipo, qualquer
coero

nmero, nmero

decremento
pr-incremento, prdecremento
mais e menos unrio
complemento de 1
(binrio)
Negao cujo resultado
lgico (true/false)
criao de objeto
converso de tipo
multiplicao, diviso e
mdulo (resto)

deslocamento a direita
com sinal
deslocamento a direita
com zeros
menor que, menor ou
igual a
maior que, maior ou
igual a
verificao de tipo

www.t2ti.com
12

Curso Java Starter


condicional

==

condicional

!=

condicional

==

condicional

!=

binrio

&

lgico

&

binrio

10

Grupo

Operador

Precedncia

A Operando

lgico

binrio

lgico

lgico

&&

12

lgico

||

13

condicional

?:

14

atribuio

15

D varivel, qualquer atribuio

*= /= %=

primitivo,primitivo igualdade de valores


primitivo,primitivo diferena de valores

referncia,

igualdade, endereo

referncia

dos objetos

referncia,

diferena, endereo de

referncia

objetos

inteiro, inteiro

E sobre bits

booleana,
booleana

11

inteiro, inteiro

E booleano
XOR sobre bits

Descrio

booleana,

XOR (OU exclusivo)

booleana

booleano

inteiro, inteiro

OU sobre bits

booleana,
booleana
booleana,
booleana
booleana,
booleana

OU booleano
E condicional
OU condicional

booleana,

operador ternrio,

qualquer

condicional

varivel, qualquer

atribuio com
operao

+= -= <<=
>>= >>>=
&= ^= |=

Em se tratando de precedncia bom lembrar que os parnteses podem ser


usados para modific-la.
2 + 6 * 5 = 32
(2 + 6) * 5 = 40

Controle de Fluxo
O controle de fluxo efetuado atravs do uso de condicionais, que so

www.t2ti.com
13

Curso Java Starter


estruturas que modificam o fluxo de execuo normal do programa.

if-else
Sintaxe:
if (expresso booleana)
instruo_simples;

if (expresso booleana) {
instrues
} else if (expresso booleana) {
instrues
} else {
instrues
}

if (expresso booleana) {
instrues
}

Quando existe apenas uma instruo aps o if no precisamos abrir um bloco


com as chaves. Se existirem mais instrues a abertura do bloco necessria.
Se houver mais de uma condio usa-se o else como podemos observar na
segunda coluna acima.
Veja o exemplo abaixo e comente o mesmo na lista de discusso.
if ( ano < 0) {
System.out.println("No um ano!");
} else if ( (ano%4==0 && ano%100!=0) || (ano%400==0) ) {
System.out.println(" bissexto!");
} else {
System.out.println("No bissexto!");
}

while e do-while
Sintaxe:
while (expreso booleana)
{
instrues;
}

do
{
instrues;
} while (expreso booleana );

No caso do while as instrues sero executadas enquanto a expresso


booleana for verdadeira.
O do-while executa a instruo pelo menos uma vez e continua executando
enquanto a expresso booleana for verdadeira.
Observe os exemplos seguintes.

www.t2ti.com
14

Curso Java Starter


//exemplo com while
int x = 0;
while (x < 10) {
System.out.println ("item " + x);
x++;
}
//exemplo com do-while
int x = 0;
do {
System.out.println ("item " + x);
x++;
} while (x < 10);
//esse um lao infinito. Pra que ele serve?
while ( true ) {
if (obj.z == 0) {
break;
}
}

for
Sintaxe:
for ( inicializao;
expresses booleanas;
passo da repetio )
instruo_simples;

for ( inicializao;
expresses booleanas;
passo da repetio )
{
instrues;
}

O for pode conter apenas uma instruo no seu corpo. Neste caso no
necessrio abrir um bloco. Isso assim porque o for j implementa alguns comandos
na sua assinatura, ou seja, no seu cabealho, como a inicializao da varivel e o
passo da repetio, ou seja, o incremento/decremento da varivel.
Veja os exemplos:
//esse t bem fcil.
for ( int x = 0; x < 10; x++ ) {
System.out.println ("item " + x);
}
//esse j no to simples s de olhar.
for ( int x = 0, int y = 25; x < 10 && (y % 2 == 0); x++, y = y - 1 ) {
System.out.println (x + y);
}
//tambm podemos fazer um lao infinito com o for
for ( ; ; ) {
if (obj.z == 0) {
break;
}
}

www.t2ti.com
15

Curso Java Starter

break e continue
Voc deve ter observado que quando fizemos os laos infinitos com o while e
com o for utilizamos um comando break. Para que ele serve? Este comando serve
para quebrar o lao, ou seja, ele far com que o lao seja interrompido.
O comando continue tambm influi dentro de um lao. Mas ele no vai quebrar
o lao. Ele interrompe aquela iterao do lao e reinicia o bloco com a prxima
iterao.

Rtulos (break e continue)

E se tivermos com um lao dentro de outro e quisermos quebrar o lao mais


externo? O break ou continue agem no lao mais interno. Existe uma maneira: rotular
nossos laos. Observe a imagem a seguir:

www.t2ti.com
16

Curso Java Starter

switch (case)
Sintaxe:

switch(seletor_inteiro) {
case valor_inteiro_1 :
instrues;
break;
case valor_inteiro_2 :
instrues;
break;
...
default:
instrues;
}

switch(letra) {
case 'A' :
System.out.println("A");
break;
case 'B' :
System.out.println("B");
break;
...
default:
System.out.println("?");
}

Switch s trabalha com valores inteiros, incluindo o char.

Palavras Reservadas

Toda linguagem possui palavras reservadas e isso no seria diferente em Java.


Uma verso mais recente do Java pode ter mais palavras reservadas que uma
anterior. A seguir voc pode ver uma imagem com boa parte das palavras reservadas
em Java. Pesquise e descubra quais palavras reservadas no esto na lista abaixo.
Comente na lista.

www.t2ti.com
17

Curso Java Starter

Tente utilizar algumas dessas palavras como nome de variveis e veja como o
compilador Java se comporta.
Voc deve ter percebido que no utilizamos um tipo String neste mdulo. O
Java possui um tipo String, no entanto, String no Java no um tipo primitivo.
Falaremos sobre String em um mdulo posterior.

Entrada de Dados
Como eu fao para ler algo que o usurio digita no prompt?
Observe o programa abaixo:
//importe a classe Scanner para utilizar a leitura pelo teclado
//Similar ao #include do C
import java.util.Scanner;
public class Leitura {
public static void main(String[] args) {
// crie a varivel de leitura dos dados
Scanner s = new Scanner(System.in);
// use os mtodos de leitura especficos do tipo desejado
System.out.print("digite uma linha: ");
String linha = s.nextLine(); // le a linha
System.out.print("digite um numero: ");
int i = s.nextInt(); // le um inteiro
System.out.print("digite um numero: ");
double d = s.nextDouble(); // le um ponto-flutuante
}
}

Com o estudo do programa acima j d para voc solicitar que o usurio digite
alguma coisa e utilizar o que o mesmo est digitando.

www.t2ti.com
18

Curso Java Starter


Vamos aos to aguardados exerccios.

Exerccios
Aprenda com quem tambm est aprendendo, veja e compartilhe as suas respostas
no nosso Frum:
Exerccios Mdulo 02 Tipos Primitivos, Operadores e Controle de Fluxo
01 - Escreva um programa que imprima o resultado das expresses abaixo:
321+2+1+3
2x34x5
2+63/7x9
3 % 4 8
02 - Escreva um programa que declare, inicialize e imprima as seguintes
variveis:
Inteiro i de 32 bits com valor 1
Inteiro j de 64 bits com valor 2
Ponto-flutuante p de 32 bits com valor 20.0
Ponto-flutuante q de 64 bits com valor 30.0
Boolean b com valor verdadeiro
Caracter c com valor k
03 - Implemente um programa que recebe um nmero de 1 a 7 e imprime o
dia da semana correspondente.
04 - Altere o programa do exerccio anterior para ficar recebendo o nmero
dentro de um lao enquanto o nmero for diferente de 0 (zero).
05 - Implemente um programa que recebe repetidamente um nmero de 1 a
12, enquanto esse nmero for diferente de 0 (zero), e imprime o ms correspondente.
Quando o nmero estiver fora do intervalo permitido, a mensagem ms invlido
dever ser exibida.
06 - Escreva um lao while que execute 20 vezes, imprimindo o valor da
varivel x que inicialmente est com valor 10. Converta este lao para um do-while.
07 - Escreva um programa que imprima na tela a soma dos nmeros mpares
entre 1 e 30 e a multiplicao dos nmeros pares entre 1 e 30.
08 - Escreva um programa que percorra dois laos de 0 a 10, um interno ao
outro, imprimindo os contadores, e quando estes forem iguais, o programa deve
passar prxima interao do lao mais externo, caso contrrio, deve imprimir os
valores dos contadores dos dois laos.
09 - Desenvolva um programa que solicita ao usurio um nmero inteiro de no
mximo 4 dgitos. Inverta esse nmero.
10 Desenvolva um programa que dado um nmero inteiro o programa
informe se o mesmo um nmero primo.

www.t2ti.com
19

Curso Java Starter


11 - Escreva um programa em Java que calcula e imprime na tela o salrio
proporcional de um funcionrio que trabalhou apenas N dias num ms de 22 dias
teis. O nmero de dias trabalhados bem como o salrio integral do funcionrio
devem ser lidos do teclado. O resultado deve ser um nmero ponto-flutuante.
12 - Escreva um programa em Java que leia repetidamente um nmero do
teclado at que seja digitado o nmero zero (0) e determine se o nmero lido
perfeito ou no, imprimindo o resultado. Um nmero dito perfeito quando igual a
soma dos seus divisores menores do que ele, por exemplo, 6 perfeito, uma vez que
6 = 3 + 2 + 1.
13 Faa um programa que contenha um menu com 4 opes:
1 calcular o fatorial de um nmero dado
2 calcular a raiz quadrada de 3 nmeros dados
3 imprimir a tabuada completa de 1 a 10
4 sair do programa
14 - Escreva quatro instrues em Java diferentes para adicionar 1 a uma
varivel inteira x.
15 - Escreva instrues Java para realizar a seguinte tarefa: atribuir soma de
x e y a z e incrementar x por 1 depois do calculo. Use somente uma instruo;
16 - Escreva instrues Java para realizar a seguinte tarefa: decrementar a
varivel x por 1, depois subtrair o resultado da varivel total com somente uma
instruo.
17 - Implemente um programa para calcular a rea de um trapzio, onde:
h = altura
b = base menor
B = base maior
rea = (h.(b+B))/2
18 - Fulano aplicou R$ 100,00 com rendimento de 5% ao ms. Quantos meses
sero necessrios para o capital investido ultrapasse a R$ 200,00. Desenvolva um
programa que realize essa operao.
19 Faa um programa que imprima os quadrados dos nmeros inteiros
mpares entre 15 e 35.

www.t2ti.com
20

Curso Java Starter


20 - Escreva um aplicativo que imprime as seguintes formas. Voc pode
utilizar instrues de sada que imprimem um nico asterisco (*), um nico caractere
de espao ou uma nova linha. Maximize a utilizao de estruturas de repetio(com
estruturas aninhadas for) e minimize o nmero de instrues de sada.

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

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

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

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

www.t2ti.com
21

Você também pode gostar