Estruturas de control

De Manuais Informática - IES San Clemente.
Ir a la navegación Ir a la búsqueda

As estruturas de control permiten modificar o fluxo de execución básico do script. Tamén nos permiten que certas partes do script non teñan que executarse sempre.

Sentencias Condicionais

Con estas sentencias seremos capaces de tomar unha decisión baseándonos nunha expresión e facer que o programa elixa entre dous camiños de execución diferentes.

IF

A sintaxe da sentencia if é a seguinte:

 if (condición) {
  [sentencias]
 }

A condición debe ser unha expresión lóxica:

  • Se o resultado de avaliala é certa, a sentencia executarase, e continuarase coa execución do programa.
  • Se o resultado é falso, JavaScript ignora as sentencias e continuarase coa execución do script.
  • Exemplo con if: Empregar a sentencia if para saber cal é o maior de dous números.
<html>
 <head>
  <title>Estruturas de control</title>
 </head>
 <body>
  <center>
  <script language="javascript">
    <!--ocúltase a información para os navegadores antigos
    var dato1=15;
    var dato2=8;
    document.write("<h3>O maior de ");
    document.write(+dato1+" e "+dato2+" é:</h3>");
    if (dato1>dato2) {
      document.write("<h1>"+dato1+"</h1>");
      }
    if (dato2>dato1) {
      document.write("<h1>"+dato2+"</h1>");
      }
    document.write("<h3>¡Comparación feita!</h3>");
    //final do comentario-->
  </script>
  </center>
 </body>
</html>

IF...ELSE

As veces, a utilización da sentencia if en solitario non é suficiente, porque se precisa executar certas sentencias cando a expresión condicional non se cumpra. Para poder facer isto, engadimos un bloque else ó bloque if, a sintaxe quedará deste xeito:

if (condición) {
  [sentencias]
} else {
  [sentencias]
}
  • Exemplo if...else: Empregar a sentencia if...else para saber cal é o maior de dous números.
<html>
 <head>
  <title>Estruturas de control</title>
 </head>
 <body>
  <center>
  <script language="javascript">
    <!--ocúltase a información para os navegadores antigos
    var dato1=15;
    var dato2=8;
    document.write("<h3>O maior de ");
    document.write(+dato1+" e "+dato2+" é:</h3>");
    if (dato1>dato2) {
      document.write("<h1>"+dato1+"</h1>");
    } else {
      document.write("<h1>"+dato2+"</h1>");
      }
    document.write("<h3>¡Comparación feita!</h3>");
    //final do comentario-->
  </script>
  </center>
 </body>
</html>

Bucles

A utilización de bucles dentro dun script serve para moitos propósitos: para contar, para percorrer estruturas de tipo array,...

FOR

O bucle for ten a seguinte sintaxe:

for([exp_inicialización];[exp_condición];[exp_bucle]){
  [sentencias]
}

As tres expresión cerradas entre corchetes existentes no paréntese, son opcionais, pero é preciso escribir os caracteres punto e coma (;) aínda que estas se omitan.

  • exp_inicialización: Utilízase para inicializar e declarar a variable de contador do bucle.
  • exp_condición: Define a condición que debe cumprirse para que continúe contando.
  • exp_bucle: Incrementa ou decrementa a variable empregada como contador do bucle.
  • Exemplo for 1: Facer un script que imprima os números pares comprendidos entre 1 e 100.
<html>
 <head>
  <title>Estruturas de control</title>
 </head>
 <body>
  <center>
  <script language="javascript">
    <!--ocúltase a información para os navegadores antigos
    document.write("<h3>Números pares entre 1 e 100...</h3>");
    for (i=2; i<=100; i=i+2) {
      document.write(i+", ");
      }
    document.write("<h3>¡Feito!</h3>");
    //final do comentario-->
  </script>
  </center>
 </body>
</html>
  • Exemplo for 2: Mellorar o programa anterior para que poña os do 1 ó 9 nunha liña, os do 10 ó 19 na seguinte liña, os do 20 ó 29 noutra,...
Para facelo empregar o operador módulo (%), con este operador, tal e como sabemos, descubrimos se un número é múltiplo de outro observando se o módulo de ambos números é 0.
<html>
 <head>
  <title>Estruturas de control</title>
 </head>
 <body>
  <center>
  <script language="javascript">
    <!--ocúltase a información para os navegadores antigos
    document.write("<h3>Números pares entre 1 e 100...</h3>");
    for (i=2; i<=100; i=i+2) {
     if (i%10==0) {document.write("<br />"+i+", ");}
       else {document.write(i+", ");
      }
     }
    document.write("<h3>¡Feito!</h3>");
    //final do comentario-->
  </script>
  </center>
 </body>
</html>

As sentencias for tamén se poden aniñar, mira o seguinte exemplo que o demostra:

  • Exemplo for 3: Fai un programa que mostre o valor que se obtén ó sumarlle a un número todos os valores comprendidos entre el mesmo e o 0 (por exemplo do número 5: 5+4+3+2+1=15, debería mostrar 5 : 15).
<html>
 <head>
  <title>Estruturas de control</title>
 </head>
 <body>
  <center>
  <script language="javascript">
   <!--ocúltase a información para os navegadores antigos
   var dato=5;
   var suma=0;
   document.write("<h3>Sumatorio dun número: </h3>");
   for (i=1; i<=dato; i=i+1) {
    suma=suma+i;
   }
   document.write("<h3>"+dato+" : "+suma+"</h3>");
   document.write("<h3>¡Feito!</h3>");
   //final do comentario-->
  </script>
  </center>
 </body>
</html>
  • Exemplo for 4: Reforma o exemplo anterior para que faga ese sumatorio para todos os números comprendidos entre o 0 e ese número (por exemplo, se pos un 5 que faga o sumatorio dende o número 0 ata o número 5).
<html>
 <head>
  <title>Estruturas de control</title>
 </head>
 <body>
  <center>
  <script language="javascript">
   <!--ocúltase a información para os navegadores antigos
   var dato=20;
   var suma=0;
   document.write("<h3>Sumatorio dun número: </h3>");
   for (j=0; j<=dato; j=j+1) {
    for (i=0; i<=j; i=i+1) {
     suma=suma+i;
    }
    document.write("<h3>"+j+" : "+suma+"</h3>");
    suma=0;
   }
   document.write("<h3>¡Feito!</h3>");
   //final do comentario-->
  </script>
  </center>
 </body>
</html>
  • Exemplo for 5: Facer un script para que mostre en pantalla a táboa de multiplicar dun número dado como dato, debe de mostralo en formato táboa.
<html>
 <head>
  <title>Estruturas de control</title>
 </head>
 <body>
  <center>
  <script language="javascript">
   <!--ocúltase a información para os navegadores antigos
   var dato=8;
   var suma=0;
   document.write("<table border='2' align='center' cellpadding='0' cellspacing='0'>");
   document.write("<h3>Táboa de multiplicar dun número en formato táboa: </h3>");
   for (i=0; i<=9; i=i+1) {
    multi=dato*i;
    document.write("<tr> <td>"+dato+" X "+i+" = </td>
    <td>"+multi+"</td></tr>");
   }
   document.write("</table>");
   document.write("<h3>¡Feito!</h3>");
   //final do comentario-->
  </script>
  </center>
 </body>
</html>
  • Exemplo FOR_6: Modifica o script anterior para que pida o número do que queres facer a táboa de multiplicar (emprega a función de JavaScript prompt()).

FOR...IN

Este bucle utilízase para executar un conxunto de sentencias sobre cada unha das propiedades dun obxecto. Produce unha iteración ó través de todas as propiedades dun obxecto. Para utilizalo, por tanto, fai falla coñecer o modelo de obxectos de JavaScript.

Este bucle ten a seguinte sintaxe:

for (var propiedade in obxecto) {
  [sentencias]
}
  • Exemplo FOR...IN_1: