É uma interação contínua(no bloco_de_codigo) através da expressão_booleana que é feita enquanto ela for true. Como se fossem varios if em seguida, loop = laço.
*Lembre-se que a escrita de instruções é feita somente no bloco_de_codigo
Loop while:
while(expressao_booleana){
bloco_de_codigo
}// Fim do bloco_de_codigo
*boolean_expression - É a junção de operadores Relacionais e Condicionais ou uma variavel booleana, qualquer expressão que resulte em um booleano. Essa expressão é avaliada antes de toda interação com o bloco_de_codigo novamente
*bloco_de_codigo - Um conjunto de instruções que são feitas após a avaliação da boolean_expression
- É um laço de nenhuma ou mais interações, e a avaliação da boolean_expression é feita antes do bloco_de_codigo de cada interação.
Vejamos como é um loop:
Clique na imagem para ampliar
Alinhamento de blocos while(É um while dentro do outro):
while(expressao_booleana1){
bloco_de_codigo1
while(expressao_booleana2){
bloco_de_codigo2
}//fim do laço interno
bloco_de_codigo1
}//fim do laço externo
*bloco_de_codigo1 - São blocos de código referentes ao laço externo
*bloco_de_codigo2 - São blocos de código referentes ao laço interno
Após a interação do primeiro laço, ele aguarda o segundo(interno) terminar para poder prosseguir. Vejamos oque acontece:
Clique na imagem para ampliar
Constutor do laço for:
Trabalha do mesmo jeito que o loop while, So que o loop for é usado para um predefinido numero de vezes de interação, ele também é um laço de nenhum ou mais vezes mais é centralizado na estrutura de valores que pode ter, vejamos sua declaração:
for(inicializacao[,inicializacao] ; expressao_booleana ; update[,update]){
bloco_de_codigo
}
*inicializacao[,inicializacao] - Inicializa variaveis que serão usadas atraveś do laço, é Usada somente a primeira vez que o laço é processado, mais de uma inicialização deve ser separada por vírgula.
*expressao_booleana - É a junção de Operadores Relacionais e/ou Condicionais que gerem um valor boolean como resultado, é avaliado após cada interação do loop
*update[,update] - É a parte do update das variáveis, É executada depois do bloco_de_codigo porem antes da expressao_booleana. Separe os updates por vírgula.
*bloco_de_codigo - São linhas de instrução que são executadas após cada interação do loop, se o resultado da expressao_booleana for true.
É um loop de nenhuma ou mais interações e, a expressao_booleana é processada antes do bloco_de_codigo
Loops for alinhados(ou seja for dentro de for):
for(inicializacao[,inicializacao] ; expressao_booleana ; update[,update]){
bloco_de_codigo1
for(inicializacao[,inicializacao] ; expressao_booleana ; update[,update]){
bloco_de_codigo2
}//fim do for interno
bloco_de_codigo1
}//fim do for externo
É a mesma coisa que while por isso não colocarei o desenho.
Constutor do laço do/while:
É uma interação de uma ou mais vezes, a boolean_expression é processada após o bloco_de_codigo.Nesse loop o bloco_de_codigo é processado ao menos uma vez.
do{
bloco_de_codigo
}while(boolean_expression);
*bloco_de_codigo - O conjunto de instruções que serão processadas, SÂO PROCESSADAS AO MENOS UM VEZ.
*boolean_expression - É a junção de Operadores Relacionais e/ou Condicionais que gerem um valor boolean como resultado, é avaliado após cada interação do loop.
- O ponto e virgula(;) é obrigatório. while(boolean_expression); é Obrigatório.
Vejamos como fica:
Clique na imagem para ampliar
Alinhando do/while:
do{
bloco_de_codigo1
do{
bloco_de_codigo2
}while(boolean_expression2);
bloco_de_codigo1
}while(boolean_expression1);
Controle de Loop:
- break; -> Sai prematuramente de um loop, de um bloco rotulado ou de um switch
- continue; -> Pula a instrução e manda para a avaliação do boolean_expression
Exemplos:
do{
x++;
if(x ==2)
continue;
System.out.println(x);
}while(expressao_booleana);
Todas as instruções acima, e break podem ser usados para controle de LAÇOS Alinhados.
Como Nomear Laços Alinhados?
Cria-se um label para o laço, um label é criado através de:
identificador:
Como usar controle de Loop com Alinhamento?
instrução label;
Exemplo:
deFora: //Isso é um Label
do{
bloco_de_codigo
do{
if(condicao)
break deFora; //instrução label; Faz com que o loop externo termine, conclusivamente o //interno tambem
}while(boolean_expression);
bloco_de_codigo
}while(boolean_expression);
Podem ser qualquer das instruções de controle de laço, continue,break.
É hora da revisão:
- Loop while,É um laço de nenhuma ou mais interações, e a avaliação da boolean_expression é feita antes do bloco_de_codigo de cada interação.
- Loop for, É um laço de nenhuma ou mais interações, e a avaliação da boolean_expression é feita antes do bloco_de_codigo de cada interação, o update é feito após cada interação.
- Loop do/while, É um laço de UMA ou mais interações, e a avaliação da boolean_expression é feita depois do bloco_de_codigo de cada interação
- O ponto e virgula(;) após o while do, - do while - ... while(boolean_expression); é Obrigatório.
Quando usar eles?
-> while - Nenhuma ou mais interações e eu não sei a quantidade certa que poderá haver de interações
-> do/while - Uma ou mais interações e eu não sei a quantidade certa que poderá haver de interações(o bloco_de_codigo é executado ao menos uma vez)
-> for - Nenhuma ou mais interações e eu sei a quantidade certa que havera de interações, Consigo montar uma estrutura.
- Criando Label posso dar nomes a laços Alinhados(ou seja laços dentro de laços) somente coloque o nome antes da declaração do laço e depois dois pontos(isso é chamado de label em java ou seja, identificador: )
- Apos criado o label do laço(identificador: antes do Loop) você pode de dentro do laço interno terminar o laço externo, usando:
instrução label;
Onde instrução é a instrução que você usará no laço, pode ser: break,continue
Onde label é o nome que você deu a seu laço.
- A escrita de instruções só pode ser feita aonde esta escritod bloco_de_codigo isso quer dizer:
if(expressao_booleana){
//bloco_de_codigo
}
int y = 0;
else{
//bloco_de_codigo
}
Isso da erro de compilação, a declaração de y, (int y = 0;) So pode ser feita dentro do bloco_de_codigo.
Curiosidade:
- Em bytecode um laço é um "conjunto de ifs"
Bom Somente isso de loop Hoje!!!
CYA DUDES!!
Nenhum comentário:
Postar um comentário