Pular para o conteúdo principal

JS - Estruturas de repetição - while

Estruturas de repetição (loop) repetem a execução de determinadas instruções enquanto a condição de parada não for atendida. É muito importante ter isso em mente, pois, uma estrutura de repetição com uma lógica errada pode levar o browser ao travamento, caso a condição de saída nunca seja atendida.

Sintaxe

Aqui temos a palavra reservada "while" seguida da condição de parada:

while( "condição parada" ) { 
    "instruções a serem executadas enquanto condição de parada não for atendida" 
}

Exemplo

Vamos exemplificar com a seguinte lógica, será criada uma variável e enquanto essa variável for menor que o valor dez deverão ser executadas o "print" do valor dessa varável e ela deve ser incrementada:

var count = 0;
while( count < 10 ) {
    console.log(count);
    count++;
}



Exemplo usando o conceito "truthy/falsy"

Sabemos que o valor zero (0) é "falsy", logo caso seja necessário criar uma estrutura de repetição (loop) decrescente podemos fazer de uma forma que o valor da variável seja testado diretamente, no próxima exemplo nossa variável começará com o valor dez e, enquanto o valor dessa variável for "truthy" deverá ser impresso o valor atual da variável e ela deve ser decrementada:

var count = 10;
while (count) {
    console.log(count);
    count--;
}


Comentários

Mais visitadas

Iniciar e Parar Serviços do Windows (Delphi)

Em certas ocasiões nos deparamos com a necessidade de manipular determinadas atividades do SO, como iniciar ou parar um banco de dados, ou qualquer outro serviço que esteja funcionando no momento. Segue abaixo um código que encontrei na Internet para tal finalidade (não me recordo à fonte, assim que eu a encontrar colocarei). Iniciar Serviço: uses WinSvc; // // start service // // return TRUE if successful // // sMachine: //   machine name, ie: \SERVER //   empty = local machine // // sService //   service name, ie: Alerter // function ServiceStart(   sMachine,   sService : string ) : boolean; var   //   // service control   // manager handle   schm,   //   // service handle   schs   : SC_Handle;   //   // service status   ss     : TServiceStatus;   //   // te...

Listar arquivos existentes em diretório (Delphi)

Mostraremos uma maneira simples e prática para listar o conteúdo de um diretório com a opção de incluir nessa listagem os arquivos de seus subdiretórios. No exemplo abaixo temos um Edit para receber o diretório a ser pesquisado um CheckBox para indicar se os subdiretórios entrarão na pesquisa um botão para efetuar a pesquisa e um Memo para listar os arquivos encontrados, no final um Edit que receberá o cálculo final (em bytes) da soma do tamanho dos arquivos. procedure TForm1.Button1Click(Sender: TObject); begin   tamanhoTotal := 0;   memLista.Lines.Clear;   ListarArquivos(edtDiretorio.Text, chkSub.Checked);   Edit1.Text := IntToStr( tamanhoTotal ); end; procedure TForm1.ListarArquivos(Diretorio: string; Sub:Boolean); var   F: TSearchRec;   Ret: Integer;   TempNome: string; begin   Ret := FindFirst(Diretorio+'\*.*', faAnyFile, F);   try     while Ret = 0 do ...

Centralizar Texto em Edit

Como todos sabemos o Edit mantém todo texto digitado a esquerda, o que não fica bem quando o usamos para a entrada de números, pois bem, o exemplo abaixo apresenta uma alternativa para centralizar um determinado valor dentro de um Edit: procedure EditChange(Sender: TObject); var vl_label : TLabel; //variável do tipo Label begin vl_label := TLabel.Create(self); //criamos um label WITH vl_label DO BEGIN Font.Name := TEdit(sender).Font.Name; //pegamos a fonte usada no edit Caption := TEdit(sender).Text; //pegamos o conteúdo do edit SendMessage(TEdit(sender).Handle, EM_SETMARGINS, EC_LEFTMARGIN, (TEdit(sender).Width-vl_label.Width) div 2); //centraliza no label e retorna para o edit END ; vl_label.Free; end ;