Olá.
Gostaria de obter conhecimento a respeitos dos dois comandos:
do…while e o switch, se possível com exemplos.
Aproveitando… quando usaremos o artifício labeled loops?
Obrigada :roll:
Olá.
Gostaria de obter conhecimento a respeitos dos dois comandos:
do…while e o switch, se possível com exemplos.
Aproveitando… quando usaremos o artifício labeled loops?
Obrigada :roll:
While e do… while:
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/while.html
switch:
http://java.sun.com/docs/books/tutorial/java/nutsandbolts/switch.html
olá Simony…
//while
//Verifica condição antes de executar bloco.
while (valorBooleano){
código a ser executado caso valorBooleando for verdadeiro
}
.
.
.
//do...while
//Verifica condição depois de executar bloco
do{
código executado independente de condição verdadeira
}while (valorBooleano); // caso seja falso, o código não é mais executado.
quanto aos labeled loops são recursos que em geral não são muito usados pois aproximam-se dos ‘GOTO’ do Basic…mas…pode dar uma olhada aqui… http://www.javaspecialists.eu/archive/Issue110.html
[]'s
Luciano
Oi, Luciano.
Ajudou sim.
Obrigada
Há duas razões, na verdade:
a) É difícil alguém saber que tal recurso existe (muita gente boa que conheço e que programa em Java há anos não sabe que tal coisa existe);
b) E devido a essa falta de conhecimento, normalmente se usa alguma outra coisa (como um return no meio do método, ou usar um monte de flags, ou coisas mais confusas ainda).
Se você souber usar direito “labeled loops”, esse recurso é muito útil. Mas ele não deixa seu código confuso, se você souber usar.
PS: Ressucitando !
Pessoal, eu estava vendo, labeled loops, é quando por exemplo, você direciona depois de um break, continue para qual for, while ele tem que ir, é isso mesmo?
Haha, ressucitado[2].
Enfim, é isso mesmo LucasAdri07.
Labeled Loops serve para manipulação de fluxos, onde cria-se rótulos para parar(break) o loop(laço de repetição) ao achar a informação desejada ou pular uma informação do laço de repetição(continue).
Se não entendeu até aqui não se preocupe, nos exemplos ficará bem mais nítido xD
/*Exemplo 01 utilizando break:
*
*Esse código consiste em imprimir a variável y (variável que foi declarada no for mais interno).
* Através de rótulos (um e dois). O rótulo "um:" representa o laço mais interno.
* O rótulo "dois:" representa o laço mais externo.
* Esse programa irá imprimir de 0 a 4 e irá parar o fluxo mais externo quando este chegar ao número 5.
* Por sua vez, o número 5 não irá ser impresso, porém o for mais externo não irá repetir mais esta operação, devido ao break condicionado pelo rótulo.
*/
dois:
for(int x = 0; x < 5; x++){
um:
for (int y=0; y < 10;y++){
if(y==5){
break dois; /* se não condicionar o break ao rótulo dois, o break mais interno irá parar e o for mais externo iria repetir essa operação 5 vezes, imprimindo 5 vezes a lista de números de 0 a 4.*/
}
System.out.println(y);
}
}
//Exemplo 02 utilizando break:
dois:
for(int a = 0; a < 3; a++){
um:
for (int b=0; b < 5;b++){
if(b==1){
break um; /* Neste caso o break está condicionando a parada do for mais interno. De modo que somente será impresso
o numero 0. Sendo que o for mais externo, irá repetir esse número impresso 3vezes. Ficando assim : 0 0 0*/
}
System.out.println(y);
}
}
Quando existir apenas 1 único fluxo (algum laço de repetição) não é necessário inserir um rótulo, porquê ao inserir o break ou continue, ele irá entender que essa manipulação é para o laço em questão.
Exemplo utilizando continue:
// Esse código vai imprimir uma lista de 0 ao 4 e pular o número 2. Ou seja, irá imprimir 0,1,3 e 4.
for (i = 0; i < 5; i++){
if (i == 2){
continue; // nesse caso não é necessário usar o rótulo, porquê está explicito que para o for acima, pois é o único.
}
System.out.println(i);
}
Espero ter ajudado.