LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INSTRUÇÕES DE CONTROLE – PARTE I Prof. Thiago Pereira Rique <[email protected]> http://thiagorique.wordpress.com/ AGENDA Estruturas de controle A instrução de seleção única if A instrução de seleção dupla if...else A instrução de repetição while Formulando algoritmos: repetição controlada por contador Formulando algoritmos: repetição controlada por sentinela Formulando algoritmos: instruções de controle aninhadas Operadores de atribuição composta Operadores de incremento e decremento ESTRUTURAS DE CONTROLE Estrutura de sequência Execução sequencial, instrução após instrução. Instruções de seleção if (seleção única) if...else (seleção dupla) switch (seleção múltipla) Instruções de repetição Também chamadas instruções de loop Condição de continuação do loop (verdadeira) while (executa ações zero ou mais vezes) For (executa ações zero ou mais vezes) do...while (executa ações uma ou mais vezes) A INSTRUÇÃO DE SELEÇÃO ÚNICA IF Considere o exemplo: Se a nota do aluno for maior que ou igual a 60 imprima “Aprovado” A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE Considere o exemplo: Se (if) a nota do aluno for maior que ou igual a 60 imprima “Aprovado” Caso contrário (else) imprima “Reprovado” A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE Operador condicional (?:) Único operador ternário do Java Primeiro operando Segundo operando Expressão boolean Valor da expressão condicional se a expressão boolean for true Terceiro operando Valor da expressão condicional se a expressão boolean for false A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE Instruções if...else aninhadas A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE Instruções if...else aninhadas A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE Instruções if...else aninhadas A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE O problema do else oscilante O compilador Java sempre associa um else à instrução if imediatamente anterior, a menos que instruído de outro modo pela colocação de chaves ({ e }). O compilador interpreta da seguinte forma: A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE O problema do else oscilante Para forçar a instrução if...else aninhada para executar como foi originalmente concebida, devemos escrevê-la assim: A INSTRUÇÃO DE SELEÇÃO DUPLA IF...ELSE Blocos Instruções contidas em um par de chaves A INSTRUÇÃO DE REPETIÇÃO WHILE Uma instrução de repetição (ou um loop) permite especificar que um programa deve repetir uma ação enquanto alguma condição permanece verdadeira. Considere o pseudocódigo: Enquanto houver mais itens em minha lista de compras, compre o próximo item e risque-o da minha lista A INSTRUÇÃO DE REPETIÇÃO WHILE Considere um segmento de programa projetado para calcular a primeira potência de 3 maior que 100. Suponha que a variável int product tenha sido inicializada como 3. A variável product é igual a 3 no início do while Cada iteração da instrução while multiplica product por 3, fazendo a variável assumir os valores 9, 27, 81, 243. A execução do programa continua com a próxima instrução depois do while. FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR CONTADOR Considere o problema: Uma classe de dez alunos se submeteu a um questionário. As notas (inteiros no intervalo 0 a 100) desse questionário estão disponíveis. Determine a média da classe no questionário. Algoritmo em pseudocódigo controlada por contador com repetição Variável contador (ou variável de controle) A repetição controlada por contador costuma ser chamada de repetição definida ( número de repetições é conhecido previamente) FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR CONTADOR Algoritmo em pseudocódigo controlada por contador com repetição FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR CONTADOR Implementando a repetição contador na classe GradeBook Continua no próximo slide... controlada por FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR CONTADOR Implementando a repetição contador na classe GradeBook Continua no próximo slide... controlada por FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR CONTADOR Implementando a repetição contador na classe GradeBook Continua no próximo slide... controlada por FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR CONTADOR Implementando a repetição contador na classe GradeBook controlada por FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR CONTADOR A classe GradeBookTest FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR SENTINELA Considere o seguinte problema: Desenvolva um programa para tirar a média da classe que processe as notas de acordo com um número arbitrário de alunos toda vez que é executado. Algoritmo em pseudocódigo controlada por sentinela com repetição Valor de sentinela (valor de sinal, valor fictício ou valor de flag) para indicar o “fim da entrada de dados” A repetição controlada por sentinela costuma ser chamada de repetição indefinida (número de repetições não é conhecido previamente) FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR SENTINELA Algoritmo em pseudocódigo controlada por sentinela com repetição FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR SENTINELA Implementando a repetição sentinela na classe GradeBook Continua no próximo slide... controlada por FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR SENTINELA Implementando a repetição sentinela na classe GradeBook Continua no próximo slide... controlada por FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR SENTINELA Implementando a repetição sentinela na classe GradeBook Continua no próximo slide... controlada por FORMULANDO ALGORITMOS: REPETIÇÃO CONTROLADA POR SENTINELA Implementando a repetição sentinela na classe GradeBook controlada por FORMULANDO ALGORITMOS: INSTRUÇÕES DE CONTROLE ANINHADAS Considere o pseudocódigo a seguir: FORMULANDO ALGORITMOS: INSTRUÇÕES DE CONTROLE ANINHADAS Implementação Continua no próximo slide... FORMULANDO ALGORITMOS: INSTRUÇÕES DE CONTROLE ANINHADAS Implementação FORMULANDO ALGORITMOS: INSTRUÇÕES DE CONTROLE ANINHADAS Saída do programa OPERADORES DE ATRIBUIÇÃO COMPOSTA Instruções do tipo podem ser abreviadas como variável = variável operador expressão; variável operador= expressão; onde operador pode ser +, -, *, /, %. OPERADORES DE ATRIBUIÇÃO COMPOSTA OPERADORES DE INCREMENTO E DECREMENTO OPERADORES DE INCREMENTO E DECREMENTO