
Hoje vamos estudar as Funções continue e break.
Continue:
Como visto no post comando for, while e do while é possível fazer laços, com condições para que se repita comandos, através de condições.
E pode ser também que você queira sair do laço depois de obtido um resultado.
Para explicar melhor vou mostrar um programinha básico e sem graça só pra testar.
Nele eu quero apenas exibir o primeiro valor que após somado ao contador seja maior que o valor do contador.
public class contbre { public static void main (String [] args){ int aux=1; //variável de armazenamento do número //a ser obtido for(int conte=1; conte <;10; conte++){ //condição para contador, conte será //usado na soma if(conte>=aux){ // condição if pra verificar se aux é // menor ou igual a conte aux = conte+aux; //soma do contador mais //numero que quero obter continue; } System.out.println(aux); //imprime o valor encontrado break; /** acima o break é a interrupção * do laço para que não continue * a fazer os cálculos e imprimir os * outros resultados * pois esse não é o objetivo */ } } } |
Faça o um teste, com o código acima rode uma vez sem o continue
Rode outra vez sem o break
O resultado com certeza será outro ^^’
Vamos mostrar outro outro exemplo mais simples e comum também só com o continue.
Nele vamos usar um laço do tipo while um contador e um if
Onde o objetivo será imprimir números impares.
Para saber quando um número é impar ou não, de modo que seja usável como condição, é preciso fazer uma divisão, e pegar o resto dela;
Por exemplo:
3/2 resulta 1,2
mas queremos seu primeiro resto então
esse resultado será 1 resto 14/2
resulta em 2 resto 05/2
resulta em 2 resto 16/2
resulta em 2 resto 0
Nota-se que acima só resulta em 0 os números pares qual não queremos imprimir.
Agora é só fazer uma condição para isso.
Vamos usar o if para fazer essa comparação, onde se o resto da divisão for 0 é preciso voltar a linha do laço.
E como foi visto no post sobre Operadores Java o % é que devolve o resultado da divisão.
Em português estruturado o programa ficará assim:
var
i = inteiro;{declara a variável de controle}
inicio
i=-1;{atribui -1 para início da variável}
repita(i<25)
{condição do laço, definindo quantidade
de repetição ocorrerá}
i <-- i+i;{soma +1 a variável i}
se (i %2 = 0) então
{testa se resultado da divisão é 0
caso seja então será um número par
vamos te adicionar mais uma unidade}
continue;;
{quando chega neste ponto
o algorítimo é jogado para o fim deste
laço onde ele retorna para cima e
testa novamente de onde parou
no comando repita
}
fimse;
escreva (i);{escreve os números impares
fimrepita;
fim. |
Agora é só transferir isso para java.
Veja como fica:
public class contin{ public static void main(String[] args){ int i = -1; //declara a variável de controle e //atribui -1 para início da variável while(i < 25){ //condição do laço, definindo quantidade //de repetição ocorrerá i++; //soma +1 a variável i} if(i % 2 == 0){ //testa se resultado da divisão é 0 //caso seja então será um número par //vamos te adicionar mais uma unidade continue; //quando chega neste ponto //o algorítimo é jogado para o fim deste //laço onde ele retorna para cima e //testa novamente de onde parou //no comando while } System.out.println(i); //imprime os números impares } } } |
Ainda podemos melhorar isso podemos colocar rótulos ou seja, você pode indicar qual laço vai voltar seu programa.
Vamos ver um exemplo rotulado nele darei um nome qualquer a um laço, no caso o laço mais externo.
Usando dois laços for farei com que exiba quando eu tiver duas variáveis iguais:
public class rotuloconti { /** * testando o rotulo com continue */ public static void main(String[] args) { // TODO Auto-generated method stub int x, y; retorno: for(x=1; x<50 ; x++){ // para criar o rótulo basta colocar um nome qualquer // seguido de dois pontos antes do laço for (y = 1; y < 50; y++) { if (x==y){ System.out.println("x: "+x+" y: "+y); continue retorno; /** * quando o programa chega em continue * ele volta pro rótulo criado denominado aqui * de retorno */ } } } } } |
Agora veja um exemplo de rotulo usando o comando break, nele farei com que meu programa pare ao ter a variável x e y igual a 25:
public class rotulobreak { /** * testando o continue */ public static void main(String[] args) { // TODO Auto-generated method stub int x, y; volta: for(x=1; x<50 ; x++){ // para criar o rótulo basta colocar um nome qualquer // seguido de dois pontos antes do laço for (y = 1; y < 50; y++) { if (x==25 && y==25){ System.out.println("x: "+x+" y: "+y); break volta; /** * quando o programa chega em break * ele volta pro rótulo criado denominado aqui * de volta e para o laço neste ponto */ } } } } } |
Bom é bem fácil de utilizar o continue e o break só dependerá da sua necessidade, sabendo utilizar pode facilitar bastante o processos com os laços.
Bom até o próximo post.
Downloads:

