Lenguaje C

La sentencia de control b�sica es if (<e>) then <s> else <t>. En ella se eval�a una expresi�n condicional y si se cumple, se ejecuta la sentencia s; si no, se ejecuta la sentencia t. La segunda parte de la condici�n, else <t>, es opcional.

int cero ( double a )
{
  if ( a == 0.0 )
    return (TRUE);
  else
    return (FALSE);
}

En el caso que <e> no sea una expresi�n condicional y sea aritm�tica, se considera falso si vale 0; y si no, verdadero. Hay casos en los que se deben evaluar m�ltiples condiciones y �nicamente se debe evaluar una de ellas.

.�Sentencia switch

Se puede programar con un grupo de sentencias if then else anidadas, aunque ello puede ser farragoso y de complicada lectura. Para evitarlo nos puede ayudar la sentencia switch.

Su utilizaci�n es:

switch (valor) {
  case valor1: <sentencias>
  case valor2: <sentencias>
  ...
  default: <sentencias>
}

Cuando se encuentra una sentencia case que concuerda con el valor del switch se ejecutan las sentencias que le siguen y todas las dem�s a partir de ah�, a no ser que se introduzca una sentencia break para salir de la sentencia switch. Por ejemplo:

ver_opcion ( char c )
{
  switch(c){
    case 'a': printf("Op A\n");
      break;
    case 'b': printf("Op B\n");
      break;
    case 'c':
    case 'd': printf("Op C o D\n");
      break;
    default: printf("Op ?\n");
  }
}

.�Sentencia while

Otras sentencias de control de flujo son las que nos permiten realizar iteraciones sobre un conjunto de sentencias. En C tenemos tres formas principales de realizar iteraciones. La sentencia while (<e>) <s> es seguramente la m�s utilizada. La sentencia, o grupo de sentencias <s> se ejecuta mientras la evaluaci�n de la expresi�n <e> sea verdadera.

long raiz ( long valor )
{
  long r = 1;
  while ( r * r <= valor )
  r++;
  return r;
}

Una variaci�n de la sentencia while es: do <s> while ( <e> ); En ella la sentencia se ejecuta al menos una vez, antes de que se eval�e la expresi�n condicional.

.�Sentencia for

Otra sentencia iterativa, que permite inicializar los controles del bucle es la sentencia for ( <i>; <e>; <p> ) <s>. La sentencia for se puede escribir tambi�n como:

<i>;
while ( <e> ) {
  <s>;
  <p>;
}

El ejemplo anterior se podr�a escribir como:

long raiz ( long valor )
{
  long r;
  for ( r = 1; r * r <= valor; r++ );
  return r;
}

.�break y continue

Otras sentencias interesantes, aunque menos utilizadas son break y continue. break provoca que se termine la ejecuci�n de una iteraci�n o para salir de la sentencia switch, como ya hemos visto. En cambio, continue provoca que se comience una nueva iteraci�n, evalu�ndose la expresi�n de control. Veamos dos ejemplos:

void final_countdown (void)
{
  int count = 10;
  while ( count--> 1 )
  {
    if ( count == 4 )
    start_engines();
    if ( status() == WARNING )
    break;
    printf("%d ", count );
  }
  if ( count == 0 ){
    launch();
    printf("Shuttle launched\n");
  }
  else
  {
    printf("WARNING condition received.\n");
    printf("Count held at T - %d\n", count );
  }
}

d2 ()
{
  int f;
  for ( f = 1; f <= 50; f++ ) {
    if ( f % 2 == 0 )
      continue;
    printf("%d",f );
  }
}

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR