You are on page 1of 37

Linguagem e Tcnica de Programao Tecnologia Java

Professor: Hlder Seixas Lima E-mail: helder.seixas@ifnmg.edu.br

Mdulo II

Tipos primitivos e operadores

Tipos primitivos
Tipo boolean char byte short int long float double Contedo Valor lgico (true ou false) Caracter Unicode Inteiro com sinal Inteiro com sinal Inteiro com sinal Inteiro com sinal Ponto flutuante Ponto flutuante Tamanho (bits) 8 16 8 16 32 64 32 64 Mnimo -\u0000 -128 -32.768 -2.147.483.648 -263 IEEE 754 IEEE 754 Mximo -\uFFFF 127 32.767 2.147.483.647 263 - 1 IEEE 754 IEEE 754

Mais detalhes: http://download.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

Variveis

Uma varivel armazenamento; As variveis explicitamente;

unidade ser

bsica

de

devem

declaradas

Cada varivel tem um tipo, um identificador, e um valor; As variveis declarao.


Identificador

podem

ser

inicializadas

na

Tipo

int idade; boolean estudante; double salario = 1500.50;

Valor

Variveis
package br.edu.ifnmg.fundamentos; public class AulaFundamentos{ public static void main (String args[ ]){ int idade; boolean estudante = true; double salario = 1500.50; idade = 20; System.out.println("Minha idade: "+idade); } } javac br/edu/ifnmg/fundamentos/AulaFundamentos.java java br.edu.ifnmg.fundamentos.AulaFundamentos Minha idade: 20

Constantes

Uma constante declarada semelhante a uma varivel;

de

forma

Adiciona o modificador final para transformar uma varivel em constante.


Identificador

Modificador

final int IDADE_PENAL = 18;

Valor

Tipo

Constantes
package br.edu.ifnmg.fundamentos; public class AulaFundamentos{ public static void main (String args[ ]){ int idade; boolean estudante = true; double salario = 1500.0; final int IDADE_PENAL = 18; idade = 20; System.out.println("Minha idade: "+idade); System.out.println("Idade penal : "+IDADE_PENAL); } } javac br/edu/ifnmg/fundamentos/AulaFundamentos.java java br.edu.ifnmg.fundamentos.AulaFundamentos Minha idade: 20 Idade penal : 18

Constantes
Constantes no podem ter o valor alterado. package br.edu.ifnmg.fundamentos; public class AulaFundamentos{ public static void main (String args[ ]){ int idade; boolean estudante = true; double salario = 1500.0; final int IDADE_PENAL = 18; IDADE_PENAL = 21; idade = 20; System.out.println("Minha idade: "+idade); System.out.println("Idade penal : "+IDADE_PENAL); } } javac br/edu/ifnmg/fundamentos/AulaFundamentos.java br/edu/ifnmg/fundamentos/AulaFundamentos.java:9: error: cannot assign a value to final variable IDADE_PENAL IDADE_PENAL = 21; ^ 1 error

Palavras Reservadas Java

Identificadores das variveis

Os identificadores das variveis devem comear por uma letra do alfabeto, um underscore, ou um $; Podem conter dgitos; No pode conter caracteres especias, exceto, $ e undescore; No pode possuir o mesmo nome de uma palavra reservada.

Operadores de Atribuio

A expresso da direita atribuda varivel da esquerda:

A expresso da direita sempre avaliada antes da atribuio. As atribuies podem ser agrupadas:

Operadores Aritmticos

Realizam operaes aritmticas bsicas Operam sobre variveis e literais numricos

Operadores Aritmticos

A maioria das operaes resultam num int ou long:

Valores byte, char, e short so promovidos a int antes da operao. Se algum argumento for long, o outro promovido a long, e o resultado long. No caso de nmeros com ponto flutuante o padro double.

Converses e Casts

O Java converte automaticamente valores de um tipo numrico para outro tipo maior.

O Java no faz automaticamente o downcast.

Exerccio 1

Faa um programa que considere as notas de 3 alunos e depois apresente a mdia das notas, conforme definies abaixo:

Declare as variveis nota1, nota2 e nota3 do tipo byte; Atribua os valores 10, 5 e 8 para as respectivas variveis; Declare uma nova varivel para armazenar o resultado da mdia das variveis. Exiba na tela a mdia das notas.

Exerccio 1: resoluo
package br.edu.ifnmg.fundamentos; public class MediaNotas{ public static void main(String args[]){ byte nota1 = 10; byte nota2 = 5; byte nota3 = 8; int notasSomada = nota1 + nota2 + nota3; double notaMedia = notasSomada/3.0; System.out.println("Mdia notas: "+notaMedia); } } Mdia notas: 7.666666666666667

Exerccio 2

Faa um programa que considere os salrios de 3 funcionrios e depois apresente a mdia dos salrios, conforme definies abaixo:

Declare as variveis salario1 e salario2 do tipo float; Declare a varivel salrio3 do tipo double; Atribua os valores 1500.5, 2000.99 e 5000 para as respectivas variveis; Exiba na tela a mdia dos salrios.

Exerccio 2: resoluo
package br.edu.ifnmg.fundamentos; public class MediaSalarios{ public static void main(String args[]){ float salario1 = 1500.50f; float salario2 = (float) 2000.99; double salario3 = 5000; double mediaSalarios = (salario1 + salario2+ salario3)/3; System.out.println("Mdia salrios: "+mediaSalarios); } } Mdia salrios: 2833.8299967447915

Exerccio 3: Declarao de variveis e tipos

Encontrar os erros no cdigo abaixo e corrigi-los.


byte sizeof = 200; short mom = 43; short hello mom; int big = sizeof * sizeof * sizeof; long bigger = big + big + big double old = 78.0; double new = 0.1; boolean consequence = true; boolean max = big > bigger; char 10Valor = 10; char #ming = 'd'; byte a = 10; byte b = 50; byte c = a+b; int x = 100; long y = 300; int z = x+y; float f = 10; float f1 = 10.0; double d = 10.0; float f2 = d * 2; int xyz = 100L;

Operadores de Comparao

> (Maior que) >= (Maior ou igual que) < (Menor que) <= (Menor ou igual que) == (Igual) != (Diferente)

Operadores Booleanos

|| (Ou) && (E) ! (Negao) ^ (Ou exclusivo)

Condicional com If-Else


if (condio){ comando1 } else{ comando2 } if (x==0){ y = 5; } else{ y+=6; x++; }

Exerccio 4

Faa um programa que mostre a situao de um aluno no final do semestre, conforme as seguintes definies:

Crie uma varivel que armazene hipottico de nota de um aluno;

um

valor

Se a nota for maior ou igual a 60 ento informe que o aluno foi aprovado; Se a nota for maior ou igual a 30 ento informe que o aluno est em recuperao; Se a nota for inferior a 30 ento o informe que o aluno foi reprovado.

Exerccio 4: resoluo
package br.edu.ifnmg.fundamentos; public class SituacaoAluno{ public static void main(String args[]){ float notaAluno = 70; if(notaAluno >= 60){ System.out.println("Aluno aprovado"); }else if(notaAluno >= 30){ System.out.println("Aluno em recuperao"); }else{ System.out.println("Aluno reprodado"); } } } Aluno aprovado

Exerccio 5

Modifique a resoluo do exerccio 4 para que leia, atravs do teclado, a nota do aluno.

Uma boa soluo para fazer isto utilizar a classe Scanner. Para conhecer melhor a classe Scanner pesquise no google: javadoc Scanner

Exerccio 5: resoluo
package br.edu.ifnmg.fundamentos; import java.util.Scanner; public class SituacaoAluno{ public static void main(String args[]){ Scanner scanner = new Scanner(System.in); System.out.println("Nota aluno: "); float notaAluno = scanner.nextFloat(); if(notaAluno >= 60){ System.out.println("Aluno aprovado"); }else if(notaAluno >= 30){ System.out.println("Aluno em recuperao"); }else{ System.out.println("Aluno reprodado"); } } }

Exerccio 6

Altere novamente o exerccio 4 para que a nota do aluno seja recebida atravs de um parmetro no momento da execuo.

Para que serve o String args[] passado ao mtodo main? Este array de String representa os parmetros passados no momento da execuo.

Exerccio 6: resoluo
package br.edu.ifnmg.fundamentos; public class SituacaoAluno{ public static void main(String args[]){ float notaAluno = Float.parseFloat(args[0]); if(notaAluno >= 60){ System.out.println("Aluno aprovado"); }else if(notaAluno >= 30){ System.out.println("Aluno em recuperao"); }else{ System.out.println("Aluno reprodado"); } } }

Classes Wrappers

til para converter String para um tipo primitivo


Tipo Primitivo byte short int long float double Classe Wrapper Byte Short Integer Long Float Double Exemplo de converso de String Byte.parseByte(10) Short.parseShort(10) Integer.parseInt(10) Long.parseLong(10) Float.parseFloat(10.10) Double.parseDouble(10.10)

Condicional com Switch

switch(Expr) { case const1: com1; ... case constN: comN; default: comDef }

Condicional com Switch

switch(letra) { case i: System.out.println(inserir); break; case e: System.out.println(excluir); break; case a: System.out.println(alterar); break; default: System.out.println( Ao ignorada: +letra); }

Exerccio 7

Faa um programa que informe ao usurio o nome do canal de TV, conforme as seguintes definies:

Usurio informa o nmero do canal de TV e o sistema exibe o nome do canal, conforme a relao abaixo: 2 Record 4 Rede TV! 5 SBT 7 Band 12 Globo Quando o usurio digitar um canal no previsto o sistema deve informar que o canal desconhecido;

Utilize a estrutura switch para implementar o algoritmo.

Exerccio 7: resoluo
package br.edu.ifnmg.fundamentos; public class CanaisTV{ public static void main(String args[]){ int numeroCanal = Integer.parseInt(args[0]); String nomeCanal; switch(numeroCanal){ case 2: nomeCanal = "Record"; break; case 4: nomeCanal = "Rede TV!"; break; case 5: nomeCanal = "SBT"; break; case 7: nomeCanal = "Band"; break; case 12: nomeCanal = "Globo"; break; default: nomeCanal = "desconhecido"; } System.out.println("Canal: "+nomeCanal); } }

Repetio com while


while(condio){ Comando; } while(i<100){ x +=i++; }

Repetio com do while


do{ Comando; }while(condio); do{ x +=i++; }while(i<100);

Repetio com for

for(Expr.Inicializao;condio; expr.passo){ Comando; } for(i=1; i<100; i++){ System.out.println(numero:+i); }

Exerccio 8

Faa um programa que exiba na tela o os valores de 1 at 100, conforme as definies abaixo:

Faa o solicitado utilizando while; Faa o solicitado utilizando do while; Faa o solicitado utilizando for;

Exerccio 8: resoluo
package br.edu.ifnmg.fundamentos; public class Repeticao{ public static void main(String args[]){ System.out.print("\n0 at 100 com while: "); int i = 0; while(i < 100){ i = i + 1; System.out.print(i+", "); } System.out.print("\n0 at 100 com do ... while: "); int j = 0; do{ j++; System.out.print(j+", "); }while(j<100); System.out.print("\n0 at 100 com for: "); for(int l = 0; l < 100; l++){ System.out.print((l+1)+", "); } } }

You might also like