while quer dizer enquanto. Funciona da seguinte maneira enquanto a condição é verdadeira o laço é executado repetidas vezes. Vejamos a estrutura:
while (CONDIÇÃO){
INSTRUÇÕES
}
Diferente do for o while tem só a condição como critério de repetição. Enquanto a condição é verdadeira o laço acontece, quando a condição for falsa o laço parará de executar as instruções.
Do quer dizer fazer. O algoritmo executa primeiro para depois conferir a condição. Esta é a vantagem: As instruções são executadas pelo menos uma vez com o do-while. Vejamos:
do{
INSTRUÇÕES
}while(CONDIÇÃO);
O incremento no caso do while e do-while acontece dentro das instruções, ou alguma leitura contradiz a condição. Às vezes o seu while pode ter uma condição sempre verdadeira, então ele sempre repetirá as instruções, mas é sempre bom ter uma condição de parada acessível para o usuário.
Prática
No exemplo a seguir teremos um algoritmo que separa em colunas os números pares e os números ímpares:
public class whileImpar {
public static void main(String[] args) {
int i = 0;
System.out.println("Números impares e pares");//Observe que usei o \t para esse efeito.//É como o TAB que usamos para espaçamento.
System.out.println("Pares \tImpares");//i é 0, i será incrementado em i+=1 até ter valor 10, a condição será satisfeita e fim do laço.//i % 2 == 0, todo número par dividido por 2, terá resto 0.//i % 2 == 1, todo número impar dividido por 2, terá resto 1.
while (i <= 10) {
if (i % 2 == 0) {
System.out.print(i);
}
if (i % 2 == 1) {
System.out.println("\t" + i);
}
i++;
}
}
}
No exemplo abaixo, o usuário verá um menu com as opções de cadastrar, ver cadastro e sair:
import java.util.Scanner;
public class whileMenu {
public static void main(String[] args) {
int escolha = 1, idade = 0;
String nome = "";
Scanner input = new Scanner(System.in);//De acordo com o que vimos do conceito de while e do-while//Aqui poderia ser usado o do-while tranquilamente, já que escolha é inicializado acima com 1
while (escolha == 1) {
System.out.println("Bem-vindo ao JoyaSoftware!");
System.out.println("1 - Cadastrar");
System.out.println("2 - Ver Cadastro");
System.out.println("3 - Sair");
int opcao = input.nextInt();//Usei o switch-case para atender as opções do menu
switch (opcao) {
case 1:
if (idade == 0 || nome == "") {
System.out.println("Digite seu nome: ");
nome = input.next();
System.out.println("Digite sua idade: ");
idade = input.nextInt();
} else {//Que pena! ainda não estudamos arrays ou ainda arraylist. Risos!
System.out.println("Você já preencheu o cadastro!");
System.out.println("digite um caractere e dê enter para voltar.");//nenhuma variável receberá a leitura do caractere ou palavra que o usuário digitar
input.next();
}
break;
case 2:
System.out.println("Nome: " + nome);
System.out.println("idade: " + idade);
System.out.println("digite um caractere e dê enter para voltar.");
input.next();
break;
default://lembre while(escolha == 1), se escolha receber 2 a condição será falsa.
escolha = 2;
}
}
}
}
Este algoritmo pede a leitura de 2 números, sendo que o 1º número só recebe números naturais maiores que
100 e o 2º número os menores que 20:
import java.util.Scanner;
public class dowhileMaior {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int num1 = 0, num2 = 0;//Leitura do 1º número, executando uma vez e sempre retornando se num1<100
do {
System.out.println("Informe um número natural maior que 100: ");
num1 = input.nextInt();
} while (num1 < 100);//Leitura do 2º número, executando uma vez e sempre retornando se num2>20
do {
System.out.println("Informe um número natural menor que 20: ");
num2 = input.nextInt();
} while (num2 > 20);
}
}
Neste exemplo o algoritmo concede ao usuário uma condição de parada, onde ele pode sair do programa:
import java.util.Scanner;
public class dowhileSair {
public static void main(String[] args){
Scanner input = new Scanner(System.in);
String nome;
int sair=1;//Leitura do seu nome
System.out.println("Digite seu nome: ");
nome = input.next();
//Esta condição de parada é muito usada quando o usuário pode digitar//vários números e pode parar digitando 0 ou ainda -1.//Ele pode digitar quantos números ele quiser.
do{
System.out.println("Bem vindo, "+nome+" ao do While!");
System.out.println("Para sair a condição deverá ser falsa!");
System.out.println("Digite 0 e pressione enter para sair!");
sair = input.nextInt();//Enquanto sair é diferente de 0 retorne a executar o laço.
}while(sair != 0);
}
}
Bom, terminamos com esta lição o tópico das estruturas de repetição. Aguardem iremos aprender nas próximas aulas sobre vetores(arrays).
Tito 2:11-13
11 - Porque a graça de Deus se há manifestado, trazendo salvação a todos os homens,
12 - Ensinando-nos que, renunciando à impiedade e às concupiscências mundanas, vivamos neste presente século sóbria, e justa, e piamente,
13 - Aguardando a bem-aventurada esperança e o aparecimento da glória do grande Deus e nosso Salvador Jesus Cristo;
Nenhum comentário:
Postar um comentário