Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo. Última atualização: 09/06/2010

Documentos relacionados
Tipos, Literais, Operadores

Tipos, Literais, Operadores

Análise de Programação

Estruturas de Controle

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Sintaxe da linguagem Java

Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo

Linguagem Java - Introdução

MsC. João Maria MsC. Liviane Melo

Programação Estruturada e Orientada a Objetos

Programação Orientada a Objetos

Algoritmos II prof. Daniel Oliveira

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Variáveis primitivas e Controle de fluxo

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Tipos Primitivos, estruturas de iteração e decisão.

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Palavras Reservadas da Linguagem Java

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Linguagem de Programação III

Programação com Acesso a BD. Programação com OO Acesso em Java

Estruturas de Controle em c#

Módulo 9 VARIÁVEIS, TIPOS DE DADOS, OPERADORES, ESTRUTURAS DE CONTROLO P S I C P T G P S I

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Linguagem de programação Java

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade

Seleção Múltipla Laços (while, do-while, for) AULA 05

Introdução ao Java. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Módulo 03. Identificadores, Palavras Reservadas, e Tipos

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Aula 4 Estruturas de Controle

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

CIÊNCIA DA COMPUTAÇÃO - LINGUAGEM DE PROGRAMAÇÃO II REVISÃO POO

Introdução à Linguagem de Programação Java 1 INTRODUÇÃO À LINGUAGEM DE PROGRAMAÇÃO JAVA

Sintaxe Básica do Java. João Paulo Q. dos Santos

4. Constantes. Constantes pré-definidas

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Estruturas de controle Parte 1

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Orientação a Objetos e Java

Operadores Lógicos e Relacionais Comandos condicionais (if-else) Casting AULA 04

Instituto Superior de Engenharia de Lisboa

Diagramas Sintáticos

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

Java Standard Edition (JSE)

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Ambientação com a Sintaxe de Java: parte 1

PROGRAMAÇÃO ORIENTADA A OBJETOS JAVA

Orientação a Objetos e a Linguagem Java

CONTROLE DE FLUXO. Algoritmos e Programação. Prof. Alceu Britto Slides cedidos pelo Prof. Edson J. R. Justino (PUCPR) Aula 9 e 10

Tipos de dados e comandos POO

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

Programação científica C++

Linguagem Java: Sintaxe Java

Java Básico. Carga Horária: 32 horas. Pré-requisito: Lógica de Programação; JAVA. Conteúdo Programático

Introdução. Universidade Federal de Uberlândia. Programação Orientada a Objetos. Prof. Fabiano Dorça

Desenvolvimento de Aplicações Desktop

Revisão da Linguagem C Prof. Evandro L. L. Rodrigues

Introdução à Linguagem C++

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Sintaxe Básica de Java Parte 2

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Linguagem de Programação II Implementação

Programação de Computadores - I. Profª Beatriz Profº Israel

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

Revisão C++ - Parte 1

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

" # $ % & ' ( ) 1/6 29/11/2004 : : : A1 (Custódio) A2 (Custódio) B2 (Dirceu) A3 (Dirceu) B3( Dirceu) B1 (Marcus) B4 (Marcus) PARTE TEÓRICA

Revisão Linguagem C Parte 1

Linguagem de Programação II Implementação

Linguagens de Programação

Introdução à Programação. Expressões Booleanas e Comandos Condicionais

TE091 Programação Orientada a Objetos Engenharia Elétrica

Programação Orientada a Objetos SANTOS, Rafael (PLT)

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

Slides trabalhados durante a quinta aula

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Lição 4 Fundamentos da programação

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Conceitos básicos de programação

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Linguagens de Programação I

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Fabiano Moreira.

LÓGICA DE PROGRAMAÇÃO (JAVA) ESTRUTURAS REPETIÇÃO. Professor Carlos Muniz

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

Java Variáveis e Controle Fluxo

Lógica de Programação. Lógica de Programação com Java

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Transcrição:

Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo Última atualização: 09/06/2010

Objetivos Distinguir entre variáveis de instância e locais; Descrever como iniciar variáveis de instância; Visão geral sobre Heap e Stack Identificar e corrigir o erro de compilação referência antes de atribuição ; Reconhecer, descrever, e utilizar operadores em Java; Distinguir entre atribuições legais e ilegais de tipos primitivos

Objetivos (Cont) Identificar expressões lógicas e seus requisitos no controle de expressões; Reconhecer compatibilidade de atribuições e conversões necessárias em tipos fundamentais; Utilizar construções if, switch, for, while, do e os labels break e continue como estruturas de controle e seleção em um programa.

Heap e Stack Visão Geral Na maioria do tempo, as várias partes (métodos, variáveis, objetos) de programas Java residem em um de dois lugares na memória: Heap ou Stack Neste módulo nos preocuparemos com variáveis de instância, variáveis locais e objetos e suas localizações em memória Variáveis de instância e objetos residem na heap Variáveis locais e métodos residem na stack Obs: Os slides sobre heap e stack foram construídos a partir do livro SCJP for Java 5.0 de Kathy Sierra e Bert Bates

Heap e Stack Visão Geral Usaremos o exemplo abaixo para exibir como suas várias partes são criadas na stack e na heap class Coleira { class Cachorro { Coleira c; // variável de instância String nome; // variável de instância public static void main (String[] args) { Cachorro d ; // variável local d d = new Cachorro(); d.avancar(d); void avancar(cachorro cachorro) { // variável local cachorro c = new Coleira(); cachorro.setnome( Aiko ); public void setnome(string nome) { // variável local: nome this.nome = nome; // faça algo mais

Heap e Stack Visão Geral A figura abaixo mostra o estado da Stack e da Heap no momento que o programa atingir o comentário faca algo mais

Variáveis locais são: Variáveis e Escopo Variáveis que são definidas dentro de um método são chamadas de locais, automáticas, temporárias ou variáveis de pilha. Variáveis que são criadas quando o método é executado, mas que são destruídas ao término da execução do método. Variáveis locais requerem iniciação explícita. Variáveis de instância são automaticamente iniciadas

Exemplo de Escopo de Variável

Iniciação default de Variáveis de instância Variável Valor byte 0 short 0 int 0 long 0L float 0.0F double 0.0D char '\u0000' boolean false Todos tipos de referência null

Operadores E-D: associa da esquerda para a direita D-E: associa da direita para a esquerda Associação operadores D-E ++ -- + - ~! (tipo lógico) E-D * / % E-D + - E-D << >> >>> E-D < > <= >== instanceof E-D ==!= E-D E-D & ^ D-E E-D && E-D D-E?: D-E == *= /= %= += -= <<= >>= >>>= &= ^= =

Operadores Lógicos Os operadores lógicos (Boolean) são:! Negação & E OU ^ OU Exclusivo Os operadores lógicos short-circuit são: && E OU Você pode utilizar estes operadores da seguinte forma:... Data d = new Data(7,5,1977); if ((d!= null) && (d.getdia() > 31)) { // Faça algo com d...

Operadores Lógicos de Bits Os operadores lógicos de bits são: ~ Complemento & E ^ OU Exclusivo OU exemplos:

Os operadores >> e >>> O operador de deslocamento aritmético para a direita com preservação de sinal (>>) é utilizado da seguinte maneira: 128 >> 1 retorna 128/2 1 = 64 256 >> 4 retorna 256/2 4 = 16-256 >> 4 retorna -256/2 4 =-16 O bit de sinal é copiado durante o deslocamento. O operador de deslocamento lógico para a direita sem preservação de sinal (>>>) é: Usado em padrões de bits. O sinal de bit não é copiado durante o deslocamento.

Operador Deslocamento para a Esquerda (<<) O operador de deslocamento para a esquerda funciona da seguinte forma: 128 << 1 retorna 128 * 2 1 = 256 16 << 2 retorna 16 * 2 2 =64

Exemplos de Operadores de Deslocamento

O operador + : Concatenação de String com + Executa uma concatenação de String. Produz uma nova String: String titulo = "Rei"; String nome = "Luis" + " " + "XIV"; String profissao = titulo + " " + nome; um argumento deve ser um objeto String Não-strings são convertidos para objetos String automaticamente.

Conversão (Casting) Se informação pode ser perdida em uma atribuição, o programador deve confirmar a atribuição com um cast. A atribuição entre long e int requer um cast explícito. A atribuição de um literal int para byte ou short é feita automaticamente caso o valor seja compatível long valorgrande = 99L; int valormenor = valorgrande; // errado, necessita de conversão int valormenor = (int) valorgrande; // OK int valormenor = 99L; // errado, necessita de conversão int valormenor = (int)99l; // OK int valormenor = 99; // literal inteiro default

Promoção e Conversão de Expressões Variáveis são automaticamente convertidas para uma forma maior (tal como de int para long). Uma expressão é compatível em atribuição se o tipo da variável é pelo menos do tamanho (mesmo número de bits) do tipo de expressão long valorgrande = 6; // 6 é um tipo int, OK int valorpequeno = 99L; // 99L é um long, ilegal double z = 12.414F; // 12.414F é float, OK float z1 = 12.414; // 12.414 é double,ilegal.

Instruções Condicionais A sintaxe da instrução if, else: If (expressão booleana){ Instrução ou bloco; ou if (expressão booleana){ instrução ou bloco; else { instrução ou bloco;

Instruções Condicionais Um exemplo if, else: int contador = 10; int valormaximocontador = 100; if (contador < 0) { System.out.println("Erro: valor de contador é negativo."); else { if(contador > getvalormaximocontador()) { System.out.println("Erro: valor grande para contador."); else { System.out.println("Haverá" + contador + pessoas hoje");

Instruções Condicionais A sintaxe da instrução switch: switch(expr1){ case constante2: instruções; break; case constante3: instruções; break; default:instruções; break;

Instruções Condicionais Um exemplo da instrução switch: private static final int LUXO = 1; //exemplo de constante... int modelocarro = 1; switch(modelocarro) { case LUXO: adicionararcondicionado(); adicionarcdplayer(); adicionarrodas(); adicionarmotor(); break; case SERIE: adicionarcdplayer(); adicionarrodas(); adicionarmotor(); break; default: adicionarrodas(); adicionarmotor(); OBS: Aprenderemos constantes no módulo 07. Além de constante, a expressão avaliada em um switch deve ser byte, short, int, char ou enum (visto no curso Linguagem de Programação Java)

Instruções Condicionais... private static final int LUXO = 1; //exemplo de constante...... public void metodox() { int modelocarro = 1; switch (modelocarro) { case SUPER_LUXO: adicionarairbag(); adicionarbancodecouro(); case LUXO: adicionartapetes(); adicionararcondicionado(); case SERIE: adicionarcdplayer(); adicionarvidrosverdes(); default: adicionarrodas(); adicionarmotor();

Instruções de Loop O loop for: for(expriinicial; boolean testeexpressao; alteracaoexpressao){ instrução ou bloco; Exemplo: for(int i=0; i<10; i++) { System.out.println("Não terminou ainda?"); System.out.println("Pronto!");

Instruções de Loop O loop while: while(expressão booleana){ Instrução ou bloco; Exemplo:... int i =0; while(i < 10) { System.out.println("Não terminou ainda?"); i++; System.out.println("Pronto");...

Instruções de Loop O loop do/while: do { instrução ou bloco; while(expressão booleana); Exemplo: int i = 0; do { System.out.println("Não terminou ainda?"); i++; while(i < 10); System.out.println("Pronto");

A instrução break: Controle de Fluxo Avançado do { instrução; if (condição verdadeira){ break; instrução; while(expressão booleana);

Controle de Fluxo Avançado A instrução continue: do { instrução; if (expressão booleana){ continue; instrução; while (expressão booleana);

Controle de Fluxo Avançado Utilizando break com rótulos: externo: do { instrução; do { instrução; if(expressão booleana){ break externo; instrução; while (expressão booleana); instrução; while(expressão booleana);

Controle de Fluxo Avançado Utilizando continue com rótulos: teste: do { instrução; do { instrução; if (condição verdadeira){ continue teste; instrução; while(condição verdadeira); instrução; while(condição verdadeira);

Perguntas?