Introducción a C#
Por Nacho Cabanes, versión 0.93 de 16-abr-2010


(Nota: Estás viendo una versión del curso antigua, creada en 2009. Es recomendable que sigas la versión 2015, mucho más actualizada, con contenidos más detallados, más ejemplos y más ejercicios propuestos)

3. Estructuras de control

3.1. Estructuras alternativas

3.1.1. if

Vamos a ver cmo podemos comprobar si se cumplen condiciones. La primera construccin que usaremos ser "si ... entonces ...". El formato es

   if (condición) sentencia;

Vamos a verlo con un ejemplo:

/*---------------------------*/
/*  Ejemplo en C# nº 10:     */
/*  ejemplo10.cs             */
/*                           */
/*  Condiciones con if       */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo10
{
    public static void Main()
    {
        int numero;
 
        Console.WriteLine("Introduce un número");
        numero = Convert.ToInt32(Console.ReadLine());
        if (numero>0) Console.WriteLine("El número es positivo.");
    }
}
 

Este programa pide un número al usuario. Si es positivo (mayor que 0), escribe en pantalla "El número es positivo."; si es negativo o cero, no hace nada.

Como se ve en el ejemplo, para comprobar si un valor numérico es mayor que otro, usamos el símbolo ">". Para ver si dos valores son iguales, usaremos dos símbolos de "igual": if (numero==0). Las demás posibilidades las veremos algo más adelante. En todos los casos, la condición que queremos comprobar deberá indicarse entre paréntesis.

Este programa comienza por un comentario que nos recuerda de qué se trata. Como nuestros fuentes irán siendo cada vez más complejos, a partir de ahora incluiremos comentarios que nos permitan recordar de un vistazo qué pretendíamos hacer.

Ejercicios propuestos:

3.1.2. if y sentencias compuestas

Habíamos dicho que el formato básico de "if" es if (condición) sentencia; Esa "sentencia" que se ejecuta si se cumple la condición puede ser una sentencia simple o una compuesta. Las sentencias compuestas se forman agrupando varias sentencias simples entre llaves ( { y } ), como en este ejemplo:

/*---------------------------*/
/*  Ejemplo en C# nº 11:     */
/*  ejemplo11.cs             */
/*                           */
/*  Condiciones con if (2)   */
/*  Sentencias compuestas    */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo11
{
  public static void Main()
  {
    int numero;
 
    Console.WriteLine("Introduce un número");
    numero = Convert.ToInt32(Console.ReadLine());
    if (numero>0)  {
      Console.WriteLine("El número es positivo.");
      Console.WriteLine("Recuerde que también puede usar negativos.");
    }  /* Aqui acaba el "if" */
  }    /* Aqui acaba "Main" */
}      /* Aqui acaba "Ejemplo11" */
 

En este caso, si el número es negativo, se hacen dos cosas: escribir un texto y luego... ¡escribir otro! (Claramente, en este ejemplo, esos dos "WriteLine" podrían ser uno solo, en el que los dos textos estuvieran separados por un "\n"; más adelante iremos encontrando casos en lo que necesitemos hacer cosas "más serias" dentro de una sentencia compuesta).

Como se ve en este ejemplo, cada nuevo "bloque" se suele escribir un poco más a la derecha que los anteriores, para que sea fácil ver dónde comienza y termina cada sección de un programa. Por ejemplo, el contenido de "Ejemplo11" está un poco más a la derecha que la cabecera "public class Ejemplo11", y el contenido de "Main" algo más a la derecha, y la sentencia compuesta que se debe realizar si se cumple la condición del "if" está algo más a la derecha que la orden "if". Este "sangrado" del texto se suele llamar "escritura indentada". Un tamaño habitual para el sangrado es de 4 espacios, aunque en este texto habitualmente usaremos sólo dos espacios, para no llegar al margen derecho del papel con mucha facilidad.

3.1.3. Operadores relacionales: <, <=, >, >=, ==, !=

Hemos visto que el símbolo ">" es el que se usa para comprobar si un número es mayor que otro. El símbolo de "menor que" también es sencillo, pero los demás son un poco menos evidentes, así que vamos a verlos:

OperadorOperación
<Menor que
>Mayor que
<=Menor o igual que
>=Mayor o igual que
==Igual a
!=No igual a (distinto de)

Y un ejemplo, que diga si un número NO ES cero:

/*---------------------------*/
/*  Ejemplo en C# nº 12:     */
/*  ejemplo12.cs             */
/*                           */
/*  Condiciones con if (3)   */
/*                           */
/*  Introduccion a C#,       */
/*    Nacho Cabanes          */
/*---------------------------*/
 
using System;
 
public class Ejemplo12
{
  public static void Main()
  {
    int numero;
 
    Console.WriteLine("Introduce un número");
    numero = Convert.ToInt32(Console.ReadLine());
    if (numero != 0) Console.WriteLine("El número no es cero.");
  }
}
 

Ejercicios propuestos: