Ir para conteúdo
Fórum Script Brasil
  • 0

(Resolvido) break


Rafael Laurindo

Pergunta

Pessoal, como faco para brekar o for mais interno e não o mais externo?

for (var pos=0; pos < len; pos++)
      {
          for (var i=0; i < arrLen; i++)
              if(str.charAt(pos) == arrStrISO[i]){ //{alert(str.charAt(pos))}
                  var character = arrASCII[i]
                  break
              }
              else
                  var character = str.charAt(pos)/**/
          strAux += character
      }

Ou isso acontece automaticamente?

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Eu olhei rapido, mas assim feche todos os cochetes ... quando você omite o conchete o for/if ou a condição que seje só aceita a próxima linha de comando e as outras não ...

for (var pos=0; pos < len; pos++) {
 for (var i=0; i < arrLen; i++) {
  if (str.charAt(pos) == arrStrISO[i]) {
   var character = arrASCII[i];
   break;
  } else {
   var character = str.charAt(pos);
  }
 }
 strAux += character;
}

Veja se resolve!

Editado por SK15
Link para o comentário
Compartilhar em outros sites

  • 0

Sim e não pois olhando agora com calma a parte do seu código que interresa está ok aquele comentário em forma de 'alert' me endusio ao erro, mas assim não só em JavaScript como em qualquer outra linguagem `Like C` ao omitir os conchetes - {} - a programação entende que a condição do if/for/else/etc só vale até a próxima linha as posteriores não são mais consideradas ... Não sei se consegui explicar direito mas ai vai um exemplo prático:

Exemplo 1 - Sem conchete

var valor1 = 0;
var valor2 = 0;

for (var i = 0; i < 100; i++) {
 if ((i % 10) == 0)
  valor1++; // Somente essa linha é parte do IF
  valor2++; // Essa linha não é considerada parte do IF
}

alert("Valor 1:  " + valor1 + "\r\nValor 2:  " + valor2);
// Resultado:
// -> Valor 1: 10
// -> Valor 2: 100
Percebe que é um script simples ele gera um for de 0 a 100 e nos multiplos de 10 ele acresenta +1, porém como vemos o valor 2 é diferente do valor 1, pois ele possue o valor integral do for que é 100 ou seja ele não foi filtrado pelo IF Exemplo 2 - Com Conchete
var valor1 = 0;
var valor2 = 0;

for (var i = 0; i < 100; i++) {
 if ((i % 10) == 0) {
  valor1++; // Essa linha é parte do IF
  valor2++; // Essa linha é parte do IF
 }
}

alert("Valor 1:  " + valor1 + "\r\nValor 2:  " + valor2);
// Resultado:
// -> Valor 1: 10
// -> Valor 2: 10

Como pode ver ao usar o conchete ele considera o bloco todo como um ação só e gera os valores corretos!

Espero que tenha conseguido explicar ....

Na verdade já havia funcionado, era um erro no algorítmo, mas não neste. Mas me explique isto, colocar os colchetes, faz com que ele pare somente o 2º for e não o 1º?
Editado por SK15
Link para o comentário
Compartilhar em outros sites

  • 0
não só em JavaScript como em qualquer outra linguagem `Like C` ao omitir os conchetes - {} - a programação entende que a condição do if/for/else/etc só vale até a próxima linha as posteriores não são mais consideradas

Sim, sim, disso eu já sabia, mas obrigado assim mesmo. Minha questão é quanto ao break, se ele para somente o for mais interno ou para todos, mas já vi que sim.

Editado por Rafael Laurindo
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...