Nesta aula estudaremos o conceito de labels e estruturas de repetição. Aprenderemos como podemos saltar em uma laço a outro invocando uma referência vinculada as estruturas de repetição. |
Como utilizar o label? Muitas serão as vezes em que uma estrutura estará contida dentro de outra, até porque, até porque, essa é a maneira mais prática para iterarmos uma estrutura multidimensional, ou então, verificarmos uma condição numa lista.
Se em um determinado momento verificarmos que não mais precisamos executar o looping que está executando o nosso looping, como poderemos interromper a execução do laços externos ao que estamos contido?
É sempre importante lembrar que a instrução break ou então a instrução continue interrompem o laço de repetição do bloco onde estão contidas, porém, se quisermos interromper não somente o laço onde estamos contidos mas também, o laço que contém o laço em que estamos, como resolver esse problema?
Para essas situações, podemos utilizar os labels para que assim, possamos dar nome a cada estrutura de controle e também, para podermos manipulá-las quando precisarmos. Essa é a função dos labels, atribuir nomes às estruturas fornecendo uma maneira de manipularmos as mesmas quando necessário, como no exemplo a seguir:
public static void main(String[] args) {
//podemos nos referir a estrutura "if" através do "label" que a contém
label1:{
if(1==1){
}
}
//O label 2 contém o laço "for", logo passamos a ter controle sob o mesmo
label 2:{
for(int i = 10; i!=0; i++){
}
}
}
A utilização dos labels não é amplamente utilizada, porém, o seu poder está além de uma simples demonstração. Todas as vezes em que precisarmos ter um controle sob determinada estrutura, essa é a única maneira em que podemos fazer.
EXEMPLO FEITO EM AULA
public class Aula0039 {
public static void main(String[] args) {
label1:
{
labelIF:
if (true) {
System.out.println("instrução if");
break labelIF;
System.out.println("label 1 ini");
label2:
{
System.out.println("label 2 ini");
label3:
{
System.out.println("label 3 ini");
if (true)
break label2;
}
System.out.println("label 2 fim");
}
System.out.println("label 1 fim");
}
}
}
}
Tags curso, java
Comentários
comments powered by Disqus