Testes Condicionais e Laços - Tutorial de Java

Agora que você já estudou e exercitou seus conhecimentos básicos em Java sobre tipos, variáveis, classe Scanner, print, operadores e outros conceitos essenciais para o aprendizado desta linguagem de programação, vamos seguir adiante em nossos estudos.

Nesta seção iremos aprender sobre os testes condicionais (if else e switch case) bem como os loopings ou laços (for, while e do while), que fazem parte de toda linguagem de programação.

Até o momento, nossos programas em Java simplesmente rodavam do começo ao fim, automaticamente e sempre da mesma maneira.

Ao final destes tutoriais de nossa Apostila de Java, você irá aprender a criar programas que terão um fluxo diferente, baseado nas opções e escolhas feitas por um usuário.
Ou seja, se o usuário fornecer um determinado valor, acontece algo. Se ele fornecer outro valor diferente, uma outra coisa poderá ser acionada.

Por exemplo, ao executar uma calculadora, você pode optar por fazer soma, e ela fará.
Caso opte por fazer uma multiplicação, o aplicativo irá fornecer outros resultados.
E caso queira uma divisão, seu programa vai rodar de uma maneira diferente, de modo a operar divisões, tudo de acordo com o que o usuário escolher.

Através dos laços de repetição, ou loopings, iremos ver como executar qualquer tarefa quantas vezes quisermos, de maneira automática e totalmente controlada por você programador, ou pelo usuário.

Com os conceitos destes tutoriais, nossos programas ficarão bem mais funcionais, robustos e interessantes, não só de programar, mas como também de usar.

Tutorial de Java - Testes e Laços


03. Operadores de Incremento (++) e Decremento (--)
04. Operadores de Atribuição: +=, -=, *=, /= e %=
05. Operadores de atribuição e de incremento e decremento - diferenças entre a=++b e a=b++
06. O laço while: o que é, como usar e calculando PA e PG com while
      6.1 Questões usando o laço while
07. Loop infinito, controlando laços e loopings com o while
08. Laço for: tendo um maior controle sobre as repetições
      8.1 Questões usando o laço for
09. O laço do ... while: O laço que sempre acontece...pelo menos uma vez
10. Os comandos break e continue: interrompendo e alterando fluxos e loopings
11. O comando switch: fazendo escolhas em Java
12. Exercícios envolvendo laços
Apostila Caelum resolvida: Capítulo 3, Variáveis, Tipos Primitivos e Controle de Fluxo

19 comentários:

ismael filho disse...

Qual a resposta para:
6. Achando os dois maiores números

Escreva um programa em Java que solicita 10 números ao usuário, através de um laço while, e ao final
mostre os dois maiores números digitados pelo usuário.???

Nilton Junior disse...

package javaprogressivo_while_exercicio6;

import java.util.Scanner;

public class javaprogressivo_while_exercicio6 {

public static void main(String[] args){

float numMaior1, numMaior2;

Scanner entry = new Scanner(System.in);

System.out.println("Número 1: ");
float num1 = entry.nextFloat();

System.out.println("Número 2: ");
float num2 = entry.nextFloat();

if(num1 >= num2){

numMaior1 = num1;
numMaior2 = num2;

}
else{

numMaior1 = num2;
numMaior2 = num1;

}

int counter = 3;

while(counter <= 10){

System.out.println("Número " + counter +": ");
float num = entry.nextFloat();

counter++;

if(num > numMaior2){

if(num > numMaior1){

numMaior2 = numMaior1;
numMaior1 = num;


}
else{

numMaior2 = num;

}

}

}

if(numMaior1 == numMaior2){

System.out.println("O maior e o segundo maior número são iguais à: " +numMaior1);

}
else{

System.out.println("Maior número: " +numMaior1);
System.out.println("Segundo maior número: " +numMaior2);

}
}

}

Anônimo disse...

Olá, não tenho idéia de como fazer para gerar um quadrado de asteríscos. Pode mostrar como faz?

Anderson Willian disse...

package patinhos.java;
import java.util.Scanner;
public class PatinhosJava {


public static void main(String[] args) {

Scanner entrada = new Scanner (System.in);
int n,
patinhos;

System.out.println("Diga quantos patinhos você quer matar: ");
n = entrada.nextInt();

patinhos = n;

while (patinhos > 1){
System.out.println(
+patinhos + " patinhos foram passear,\n"
+ "além da montanha para brincar,\n"
+ "a mamãe gritou: Quá quá quá quá!");

patinhos --;
if (patinhos == 1){
System.out.printf("Mas só %d patinho voltou de lá\n\n", patinhos);
}else{
System.out.printf("Mas só %d patinhos voltaram de lá\n\n", patinhos);
}
}

System.out.println(
+patinhos + " patinho foi passear,\n"
+ "além da montanha para brincar,\n"
+ "a mamãe gritou: Quá quá quá quá!\n"
+ "Mas nenhum patinho voltou de lá\n");

System.out.printf("A mamãe patinho foi procurar,\n"
+ "além das montanhas, na beira do mar,\n"
+ "a mamãe gritou: Quá quá quá quá!\n"
+ "e os %d patinhos voltaram de lá\n", n);
}

}

Sr.Oráculo disse...

O programa dos patinhos é infinito ? pois se o valor inicial de num por exemplo era 5 e quando ao final do programa a int num voltou ser 5 o programa começa desde o inicio. É pera ser infinito assim mesmo? ou tem como evitar isso ?

Murillo Torres disse...

Exercicio 00

public class ExercicioWhile00 {
public static void main(String[] args){
int patinhos=5;

while(patinhos!=0){
if(patinhos!=1){
System.out.printf("%d patinhos foram passear\n",patinhos);
System.out.println("Além das montanhas");
System.out.println("Para brincar");
System.out.println("A mamãe gritou: Quá, quá, quá, quá");
System.out.printf("Mas só %d patinhos voltaram de lá.\n",--patinhos);
System.out.println();
}else{
System.out.printf("%d patinho foi passear\n",patinhos);
System.out.println("Além das montanhas");
System.out.println("Para brincar");
System.out.println("A mamãe gritou: Quá, quá, quá, quá");
System.out.println("Mas nenhum patinho voltou de lá");
System.out.println();
patinhos--;
}

}
System.out.println("A mamãe patinha foi procurar");
System.out.println("Além das montanhas");
System.out.println("Na beira do mar");
System.out.println("A mamãe gritou: Quá, quá, quá, quá");
System.out.println("E os 5 patinhos voltaram de lá.");

}
}

Murillo Torres disse...

Exercicio 01
public class ExercicioWhile01 {

public static void main(String[] args){

int inicio = 1;

while(inicio<100){
if(inicio%2!=0){
System.out.println(inicio);
}
inicio++;
}

}

}

Murillo Torres disse...

Exercicio 02
public class ExercicioWhile02 {
public static void main(String[] args){
int inicio=1;

while(inicio<101){

if(inicio%2==0){
System.out.println(inicio);
}
inicio++;
}
}

}

Murillo Torres disse...

Exercicio 03

public class ExercicioWhile03 {
public static void main(String[] args){
int count = 1;
System.out.println("Números PARES.");
while(count<=100){
if(count%2==0){
System.out.println(count);
}
count++;
}

count=1;

System.out.println("Número IMPARES.");
while(count<=100){
if(count%2!=0){
System.out.println(count);
}
count++;
}


}
}

Murillo Torres disse...

Exercicio 04
import java.util.Scanner;

public class ExercicioWhile04 {
public static void main(String[] args){
int notas=0, total=0, count=1;
float media;

Scanner entrada = new Scanner(System.in);

System.out.print("Informe quantas serão lidas: ");
notas = entrada.nextInt();
System.out.println();

while(count<=notas){
System.out.print("Informe a "+count+"ª nota: ");
total += entrada.nextInt();
System.out.println();
count++;
}

media = (total/notas);

System.out.printf("A média das notas é: %.2f\n", media);
}
}

Murillo Torres disse...

Exercicio 05

public class ExercicioWhile05 {
public static void main(String[] args){
int maior=0,atual,count=1;
Scanner entrada = new Scanner(System.in);

while(count<=10){

System.out.print("Informe o "+count+++"º número: ");
atual = entrada.nextInt();
System.out.println();

if (atual >= maior){
maior = atual;
}

}

System.out.println("O maior número é: "+maior);
}

}

Murillo Torres disse...

Exercicio 06
import java.util.Scanner;

public class ExercicioWhile06 {
public static void main(String[] args){
int num1=0,num2=0,atual,count=1;
Scanner entrada = new Scanner(System.in);

while(count<=10){
System.out.print("Informe o "+count+"º número: ");
atual=entrada.nextInt();

if (atual >= num1){

if(num1>=num2){
num2=num1;
}

num1=atual;
} else{
if(atual >= num2){
num2=atual;
}
}

count++;
}

System.out.println("O maior número é: "+num1);
System.out.println("O segundo maior número é: "+num2);


}
}

Murillo Torres disse...

Exercicio 07

import java.util.Scanner;

public class ExercicioWhile07 {
public static void main(String[] args){

int quantidade,count1=1,count2=1;

Scanner entrada = new Scanner(System.in);

System.out.print("Informe o tamanho do quadrado: ");
quantidade = entrada.nextInt();

while(count1<=quantidade){
count2=1;
while(count2<=quantidade){
System.out.print("*");
count2++;
}
System.out.println();
count1++;
}

}




}

Murillo Torres disse...

Exercicio 08

import java.util.Scanner;

public class ExercicioWhile08 {
public static void main(String[] args){
int tamanho, count1=1,count2;
char imprimir;

Scanner entrada = new Scanner(System.in);

System.out.print("Informe o tamanho do quadrado: ");
tamanho = entrada.nextInt();

while(count1<=tamanho){
count2=1;
while(count2<=tamanho){
if(count2==1||count2==tamanho||count1==1||count1==tamanho){
imprimir='*';
}else{
imprimir = ' ';
}
System.out.print(imprimir);
count2++;
}
count1++;
System.out.println();
}

}

}

Carlos Eduardo Silva disse...

No primeiro exercício é para o usuário digitar N números e depois outro N qualquer e indicar o menor entre eles ou dentre os N números digitados pelo usuário apresentar o menor? Fiquei na dúvida quanto a interpretação do exercício.Alguém pode me ajudar a entender?

Romario Souza disse...

package ExerciciosWhile;

import java.util.Scanner;

public class MainWhile {

public static void main(String[] args) {

int npatos, npatosinicial;
Scanner entrada = new Scanner(System.in);

System.out.print("Digite com quantos patos a musica vai ser tocada: ");
npatos = entrada.nextInt();
npatosinicial = npatos;

if(npatos > 0) {
while(npatos > 1) {
System.out.println("\n" + npatos + " patinhos foram passear");
System.out.println("Além das montanhas para brincar");
System.out.println("A mamãe patinha gritou qua qua qua");
npatos = npatos - 1;
if(npatos > 1) {
System.out.println("Mas só " + npatos + " patinhos voltaram de lá\n");
}
else {
System.out.println("Más só " + npatos + " patinho voltou de lá");
}
}

if(npatos == 1) {
System.out.println("\n" + npatos + " patinho foi passear");
System.out.println("Além das montanhas para brincar");
System.out.println("A mamãe patinha gritou qua qua qua");
npatos = npatos - 1;
System.out.println("Mas o patinho não voltou de lá\n");
}

if(npatos == 0) {
System.out.println("A mamãe patinha foi procurar");
System.out.println("Além das montanhas");
System.out.println("Na beira do mar");
System.out.println("A mamãe gritou qua qua qua qua");
if(npatosinicial > 1) {
System.out.println("E os " + npatosinicial + " patinhos voltaram de lá");
}
else {
System.out.println("E o patinho voltou de lá");
}
}
}
else {
System.out.println("Numero invalido");
}
}
}

estevan castilho disse...

Desafio 1 (esta meio diferente pois eu peguei um programa meu que calcula sua nota do boletim e resolvi juntar com o desafio 2 e gostei bastante do resultado
PS:Todas as notas maximas sao 10)
codigo:
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package calculadora.de.notas;
import java.util.Scanner;
/**
*
* @author estevan
*/
public class CalculadoraDeNotas {

/*
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner entrada = new Scanner(System.in);
float nota1;
float nota2;
float comport;
float ok;

System.out.println("individuo, por favor não coloque letras na calculadora");
System.out.println("e depois venha me reclamar que esta bugada, obrigado");
System.out.println("Formula de calculo: (nota1+nota2+comportamento)/3");
System.out.print("Digite sua nota da prova mensal\n");
nota1 = entrada.nextFloat();

System.out.print("Digite sua nota da prova bimestral\n");
nota2 = entrada.nextFloat();

System.out.print("Digite sua nota de comportamento\n");
comport = entrada.nextFloat();
ok = (nota1 + nota2 + comport)/3;
if (ok <= 7){
System.out.println("Meus parabens, voce passou, com " + ok);
} else {
if (ok >= 7){
System.out.println("voce tera que fazer uma prova de recuperacao, pois voce ficou com "+ ok);
} else {
System.out.println("Voce foi reprovado, com "+ ok);
}
}
}
}

estevan castilho disse...

Programar em Java me lembra muito Shell Script, so que com muito mas funçoes, por exemplo: No shell script temos o if e o case (no shel script eh so case msm), e no java tambem (porem o case se chama switch), porem no Java podemos criar interfaces para nossos programas sem precisar de outros programas (exeto o Java, obviamente).
Isso é so um exemplo, pois posso citar dezenas de semelhancas e diferencas entre os 2, entao, se voce sabe Shell Script, vai se dar muito bem com Java!!!

Fausto Vecina disse...

Eu montei o exercício 7. Quadrado de asteriscos da seguinte forma.
O método de ensimo é fantástico. Parabens.

public static void main(String[] args) {
int lado;
int i1;
int i2 = 1;
Scanner entrada = new Scanner (System.in);
System.out.println("Digite o tamanho do lado do quadrado!!");
lado = entrada.nextInt();
i1 = 1;

while (lado>=i2) {
while (lado>=i1) {
System.out.printf("* ");
i1++;
}
System.out.print("\n");
i2++;
i1=1;
}

}

Dicas e Novidades de Java por e-mail

Sabe quanto custa um bom livro de java?
Entre R$ 100,00 e R$300,00

Sabe quanto custa um bom curso presencial de Java?
Entre R$ 1.500,00 até R$ 4.000,00

Sabe quanto custa estudar pelo Java Progressivo?
Absolutamente nada.

Porém, também precisamos de sua ajuda e apoio.
Para isso, basta curtir nossa Fan Page e clicar no botão G+ do Google.