Estrutura de repetição do/while



Documentos relacionados
Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

Programação de Computadores I Estruturas de Repetição PROFESSORA CINTIA CAETANO

LINGUAGEM JAVA - RESUMO

Programação Orientada a Objeto Java

Variáveis primitivas e Controle de fluxo

Controle de Fluxo Comandos de repetição: while e do-while

BC-0505 Processamento da Informação

PHP Estruturas de repetição

CAMPUS DE GUARATINGUETÁ FACULDADE DE ENGENHARIA. Introdução à Programação em C. Algoritmos: Estruturas de Repetição. Prof. Dr. Galeno.J.

C A P I T U L O 6 E S T R U T U R A S D E C O N T R O L E D E R E P E T I Ç Ã O

Orientação a Objetos

INSTRUÇÕES DE REPETIÇÃO

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

LINGUAGEM C: COMANDOS DE REPETIÇÃO

Estruturas de Repetição

Aula 11: Desvios e Laços

MC Teste de Mesa e Comandos Repetitivos

Ciclo com Contador : instrução for. for de variável := expressão to. expressão do instrução

Estruturas de Decisão

insfcanceof new public switch transient while byte continue extends for int null

Aula 4 Estruturas de Controle

INF1005: Programação I. Algoritmos e Pseudocódigo

Linguagem de Programação Java Terceira aula. Prof. Rogério Albuquerque de Almeida

Linguagem C (repetição)

Simulado de Linguagem de Programação Java

Projetando um Computador

Estruturas de Controle

Projetando um Computador Parte II Arquitetura do Processador BIP

Módulo 1. Introdução. Programação Orientada a Objetos I Java (Rone Ilídio)

Capítulo 5: Repetições

JAVA. Professor: Bruno Toledo

3. COMPILAÇÃO E ESTRUTURA BÁSICA DE UM PROGRAMA EM C

Java possui 4 tipos de dados. Estes tipos de dados são divididos em: boolean, character, integer e float.

Introdução à Programação. Estruturas de Repetição

ESTRUTURAS DE CONTROLE

Estruturas de Controle

Análise de Programação

Capítulo 4 Instruções de Controle: Parte I

Prof. A. G. Silva. 28 de agosto de Prof. A. G. Silva INE5603 Introdução à POO 28 de agosto de / 1

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

Arquitetura de Computadores - Operação da Unidade de Controle. por Helcio Wagner da Silva

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

Estruturas de controle Parte 1

Linguagem de Programação III

PROGRAMAÇÃO de COMPUTADORES: LINGUAGEM FORTRAN 90/95

Aula 3. Objetivos Sequências de escapes ; Um aplicativo que adiciona inteiro; Aritmética.

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos

Programação científica C++

Sumários de REDES de COMUNICAÇÃO

Administração Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

Lição 4 Fundamentos da programação

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

Conteúdos: Debora, Edcarllos, livros! slides disponíveis!

Tutorial 3 Básico do VBA do Excel

Exercícios de Fixação Aulas 05 e 06

5 - COMANDOS DE CONTROLE DE PROGRAMA Em C existem os comandos de decisões, os comandos de iteração (ou de laços) e os comandos de desvios.

Vetores, Matrizes e String

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

Arrays. Declaração e criação de arrays

Introdução à Programação. Estruturas de Repetição

Comandos de Desvio 1

Num programa em JAVA é possível definir diferentes sequências de execução independente: Threads.

Métodos Computacionais. Comandos Condicionais e de Repetição em C

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

Atualizações de Software Guia do Usuário

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

Algoritmos I Aula 14 Java: estruturas de seleção e repetição

5. ESTRUTURA DE CONTROLE TOMADA DE DECISÕES

Isto não é exequível!... B[8][6] A[10] Slides_Java_4

Programação Estruturada e Orientada a Objetos

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Welcome the programmation Linux with shell script!!! Seja bem vindo a programação Linux com shell script!!!

Teste de Funções por Cobertura do Grafo de Fluxo de Controle

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

Programação em FORTRAN V. João Manuel R. S. Tavares

2ª Lista de Exercícios

Linguagem Java - Introdução

Termo genérico que se aplica a vários tipos de diagramas que enfatizam interações de objetos.

TUTORIAL MATLAB Victor Breder 2016

Estruturas de controlo condicional

Linguagem C++ Estruturas de controle Parte II Estruturas de repetição

Algoritmo e Pseudo-código

Algoritmos e Programação : Conceitos e estruturas básicas. Hudson Victoria Diniz

Programação de Computadores I Funções de Repetição da Linguagem C PROFESSORA CINTIA CAETANO

Até o momento, vimos que a estrutura de um computador segue uma seqüência: ENTRADA => PROCESSAMENTO => SAÍDA

Transcrição:

Es truturas de Controle Estrutura de repetição do/while A estrutura de repetição do/while é semelhante à estrutura while. Na estrutura while, o programa testa a condição de continuação do laço no começo do laço, antes de executar seu corpo. A estrutura do/while testa a condição do laço depois de executar o corpo do laço portanto, o corpo do laço sempre é executado pelo menos uma vez. Quando uma estrutura do/while termina, a execução continua com a instrução depois da cláusula while. Não é necessário utilizar chaves na estrutura do/while se houver apenas uma instrução no corpo. A maioria dos programadores inclui as chaves, para evitar confusão entre as estruturas while e do/while. A diferença entre uma declaração while e do/while é que, no laço while, a avaliação da expressão lógica é feita antes de se executarem as instruções nele contidas enquanto que, no laço do/while, primeiro se executam as instruções e depois realiza-se a avaliação da expressão lógica, ou seja, as instruções dentro de um laço do/while são executadas pelo menos uma vez. A declaração do/while possui a seguinte forma: instrução 1; instrução 2;... while (expressão lógica); O fluxograma do/while deixa claro que o programa não avalia a condição de continuação do laço enquanto a ação não for executada pelo menos uma vez. instrução(ões) condição verdadeiro falso Abaixo temos alguns exemplos que usam a declaração do/while: Exemplo 1: int x = 0; System.out.println ( x ); x++; while (x < 10); Exemplo 2: //laço infinito System.out.println( Olá ); while (true); Exemplo 3: //um laço executado uma vez Do System.out.println( Olá ); 1

Linguagem de Programação - Java while (false); Exemplo 4: Um applet que utiliza uma estrutura do/while para desenhar 10 círculos aninhados com o método drawoval da classe Graphics. //pacote do núcleo de Java import java.awt.graphics; //pacote de extensão de Java import javax.swing.japplet; //declaração da classe public class TesteDoWhile extends JApplet { //declaração do método paint, que desenha linhas no fundo do applet public void paint (Graphics g) { //chama a versão herdade do método paint super.paint(g); //declara a variável que servirá como contador, iniciando em 1 int cont = 1; //executa a primeira vez //envia a mensagem drawoval para o objeto Graphics g.drawoval(100 - cont * 10, 110 - cont * 10, cont * 20, cont * 20); //incremente o contador ++cont; //verifica a condição, se for verdadeira continua executando, caso contrário sai da estrutura do/while while (cont <= 10); No método paint é declarado a variável de controle cont e a inicializa com 1. A estrutura do/while envia a mensagem drawoval para o objeto Graphics ao qual g faz referência. Os quatro argumentos que representam a coordenada x superior esquerda, a coordenada y superior esquerda, a largura e a altura da caixa delimitadora da elipse (um retângulo imaginário na qual a elipse toca o centro de todos os quatro lados do retângulo) são colocados com base no valor da variável de controle cont. O programa desenha primeiro a elipse mais interna. O canto superior esquerdo da caixa delimitadora para cada elipse subsequente move-se para mais perto do canto superior esquerdo do applet. Ao mesmo tempo, a largura e a altura da caixa delimitadora são aumentados, para assegurar que cada nova elipse contenha todas as primeiras elipses. A variável cont é incrementada. O programa avalia o teste de continuação do laço na parte inferior do laço. Declarações de Interrupção Além das instruções de seleção e repetição, o Java fornece instruções para alterar o fluxo de controle. São elas: break, continue e return. Instrução break A instrução break, quando executada em um while, for, do...while ou switch, ocasiona sua saída imediata dessa instrução. A execução continua com a primeira instrução depois da instrução de controle. Utilizações comuns da instrução break são escapar no começo de um loop ou pular o restante de uma instrução switch. 2

Es truturas de Controle A declaração break possui duas formas: unlabeled (não identificada) e labeled (identificada). A forma unlabeled encerra a execução de um switch e o fluxo de controle é transferido imediatamente para o final deste. Podemos também utilizar a forma para terminar declarações for, while ou do-while. A forma labeled de uma declaração break encerra o processamento de um laço que é identificado por um label especificado na declaração break. Um label, em linguagem Java, é definido colocando-se um nome seguido de doispontos. Exemplo: demonstração da instrução break em uma estrutura de repetição for. //pacotes de extensao de Java //declaracao da classe public class TesteBreak { //método main inicia a execução do aplicativo em Java //declaração de duas variávies String saida = ""; int contador; //repete 10 vezes for (contador = 1; contador <= 10; contador++){ //se a contagem for igual a 5, termina o laço if (contador == 5) break; //interrompe o laço somente se contador ==5 saida += contador + " "; //fim da estrutura for saida += "\nsai do laço quando contador = " + contador; JOptionPane.showMessageDialog(null, saida); System.exit(0); //termina o aplicativo Quando a estrutura if da estrutura for detecta que o contador é 5, a instrução break é executada. Essa instrução termina a estrutura for e o programa prossegue logo depois do for. No nosso exemplo o corpo do laço é executado completamente apenas quatro vezes. Exemplo: o mesmo programa feito em outra versão. public class TesteBreak2 { public void main (String args[]){ int contador; //variável de controle também utilizada depois que o loop termina contagem: for (contador = 1; contador <= 10; contador++){ //faz o loop 10 vezes if (contador == 5) //se a contagem for 5 break contagem; //termina o loop System.out.printf("%d",contador); //final do for System.out.printf("Sai do loop quando contador = %d\n", contador); //fim do método main //fim da classe TesteBreak2 Instrução continue A instrução continue, quando executada em uma estrutura while, for ou do-while, pula as instruções restantes no corpo do laço e prossegue com a próxima iteração do laço. Nas estruturas while e do-while, o programa avalia o teste de continuação do laço imediatamente depois da instrução continue ser executada. Em estruturas for, a expressão de incremento é executada e depois o programa avalia o teste de continuação do laço. 3

Linguagem de Programação - Java A declaração continue tem duas formas: unlabeled e labeled. A forma unlabeled salta as instruções restantes de um laço e avalia novamente a expressão lógica que o controla. A forma labeled interrompe a repetição atual de um laço e salta para a repetição exterior marcada com o label indicado. Exemplo: utilizando a instrução continue em uma estrutura for. //pacotes de extensão de Java //início da classe TesteContinue public class TesteContinue { //inicia a execução do aplicativo em Java /*declaração da variável que exibirá o valor de saída, * exibido na caixa de diálogo*/ String saida = ""; /*declaração for, que repete 10 vezes * a variável i é declarada e inicializada dentro do for * a variável i serve de contador */ for (int i = 1; i <= 10; i++){ //se a contagem for 5, continua com a próxima iteração do laço if (i == 5) continue;/*pula o código restante no laço somente se i for igual a 5 */ saida += i + " "; //fim da estrutura for saida += "\nusou continue para saltar a impressão 5"; JOptionPane.showMessageDialog(null, saida); System.exit(0); //termina o aplicativo //fim do método main //fim da classe TesteContinue O exemplo utiliza a instrução continue em uma estrutura for para pular a instrução de concatenação de strings quando a estrutura if determina que o valor de i é 5. Quando a instrução continue é executada, o controle do programa continua com o incremento da variável de controle na estrutura for. Exemplos de instruções rotuladas break e continue. 1. O programa abaixo demonstra uma instrução rotulada break em uma estrutura aninhada for. O bloco inicia com um rótulo para: O bloco inclui a estrutura aninhada for e a instrução de concatenação de strings. Quando a estrutura if detecta que linha é igual a 5, a instrução break é executada. Essa instrução termina tanto a estrutura for interna quanto a estrutura for externa. O programa prossegue imediatamente para a primeira instrução depois do bloco rotulado. O corpo da estrutura for mais interna é executado completamente apenas quatro vezes. //pacotes de extensão de Java //início da classe TesteBreakrotulado public class TesteBreakRotula //o métdo main inicia a execução do aplicativo Java String saida = ""; //declaração de strings para: { //bloco rotulado //conta 10 linhas for (int linha = 1; linha <= 10; linha++){ //conta 5 colunas for(int coluna = 1; coluna <= 5; coluna++){ //se a linha for igual a 5, pula para o fim do bloco "para" if (linha == 5) 4

Es truturas de Controle break para; //pula para o fim do bloco "para" saida += "* "; //fim da estrutura interna for saida +="\n"; //fim da estrutura externa for //a linha seguinte é pulada saida += "\niteração terminada normalmente"; //fim do bloco rotulado JOptionPane.showMessageDialog(null, saida, "Testando break com um rótulo", JOptionPane.INFORMATION_MESSAGE); System.exit(0); //termina o aplicativo //fim do metodo main //fim da classe TesteBreakRotulado 2. O programa abaixo utiliza a instrução rotulada continue em uma estrutura for aninhada para permitir que a execução continue com a próxima iteração da estrutura externa for. A estrutura rotulada for inicia o rótulo proximalinha. Quando a estrutura if da estrutura interna for detecta que coluna é maior que linha, a instrução continue é executada e o controle do programa continua com o incremento da variável de controle do laço externo for. Embora a estrutura for interna conte de 1 a 10, o número de caracteres * enviados para saida em uma linha nunca excede o valor de linha. public class TesteContinueRotula String saida = " "; proximalinha: //rotulo-alvo da instrução continue //conta 5 linhas for (int linha = 1; linha <= 5; linha++){ saida += "\n"; for (int coluna = 1; coluna <= 10; coluna++){ //se a coluna for maior que a linha, inicia proxima linha if (coluna > linha) continue proximalinha; //proxima iteração do laço rotulado saida += "* "; //fim da estrutura interna for //fim da estrutura externa for JOptionPane.showMessageDialog( null,saida,"testando CONTINUE com um rótulo", JOptionPane.INFORMATION_MESSAGE); System.exit(0); //fim do método main //fim da classe TesteContinueRotulado Exercícios 1. Complete: a) JTextArea é um componente GUI que é capaz de exibir muitas de texto. b) O método settext substitui o texto em uma. c) O método adiciona texto ao fim em uma JTextArea. d) A classe oferece constantes que podem ser usadas para personalizar programas para representar valor em dinheiro para outros países. e) A estrutura de repetição testa a condição de continuação do laço no final do laço, de modo que o corpo do laço será executado pelo menos. 5

Linguagem de Programação - Java f) A estrutura trata uma série de condições nas quais uma variável ou expressão particular é comparada com valores que ela pode assumir e diferentes ações são tomadas. g) A instrução, quando executada em uma das estruturas de repetição, ou, causa a saída imediata da estrutura. h) A instrução, quando executada em uma das estruturas de repetição, ou, pula qualquer instrução restante no corpo da estrutura e prossegue com o teste para a próxima iteração do laço. i) Para sair de um conjunto aninhado de estruturas, use a instrução rotulada. j) A instrução rotulada, quando executada em uma estrutura de repetição ou, pula as instruções restantes no corpo daquela estrutura e em qualquer quantidade de estruturas de repetição que a incluam e prossegue para a próxima da estrutura de repetição rotulada que a envolve. 2. Responda: a) Descreva os quatro elementos básicos de repetição controlada por contador. b) Compare e contraste as instruções de repetição while e for. c) Explique uma situação em que seria mais adequado utilizar uma instrução do-while do que uma instrução while. d) Compare e contraste as instrução break e continue. 3. Escreva os aplicativos para as situações abaixo: a) O programa deve localizar o menor de vários inteiros. Assuma que o primeiro valor lido especifica o número de valores a serem inseridos pelo usuário. b) Calcule o produto dos inteiros ímpares de 1 a 15 e depois exiba os resultados em uma caixa de diálogo de mensagem. c) Exiba os seguintes padrões separadamente, um embaixo do outro. Utilize loops para gerar os padrões. Todos os asteriscos (*) devem ser impressos por uma única instrução na forma System.out.print( * ); o que faz com que os asteriscos sejam impressos lado a lado. Uma instrução na forma System.out.println(); pode ser utilizada para mover-se para próxima linha. Não devem haver outras instruções de saída no programa. (a) * ** *** **** ***** ****** ******* ******** ********* ********** (b) ********** ********* ******** ******* ****** ***** **** *** ** * d) Escreva um programa que leia cinco número entre 1 e 30. Para cada número que é lido, seu programa deve exibir o mesmo número de asteriscos adjacentes. Por exemplo, se seu programa lê o número 7, ele deve exibir *******. 6