Estructuras de control

Creado por Yhoan Galeano

Instrucción if

Esta sentencia sirve para ejecutar unas instrucciones en caso de que se cumpla determinada condición.

using System;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
            string banano = "Amarillo ";
            bool pelar;
            if (banano.Equals("Amarillo"))
            {
                pelar = true;
            }
            else
            {
                pelar = false;
            }
            Console.WriteLine("El banano {0} fue pelado", pelar==true?"si":"no");
            Console.ReadLine();
        }
    }
}

Instrucción switch

La instrucción switch es muy parecida a la estructura if-else-if, sólo que permite seleccionar entre varias alternativas de una manera más cómoda. Funciona de la siguiente manera: el valor de una expresión se prueba sucesivamente con una lista de constantes. Cuando se encuentra una coincidencia, se ejecuta la secuencia de instrucciones asociada con esa coincidencia.

using System;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
            string s = "+";

            switch (s)
            {
                case "+":
                    Console.WriteLine("El resultado es {0}", 2 + 3);
                    break;
                case "-":
                    Console.WriteLine("El resultado es {0}", 2 - 3);
                    break;
                case "*":
                    Console.WriteLine("El resultado es {0}", 2 * 3);
                    break;
                case "/":
                    Console.WriteLine("El resultado es {0}", 2 / 3);
                    break;
                default:
                    Console.WriteLine("No te entiendo");
                    break;
            }
        }
    }
}

Bucle for

El bucle for es idéntico al encontrado en los lenguajes Java y PHP. El formato general es

 

for(inicialización; condición; iteración)
{
     instrucciones;
}

 

 

using System;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
            int t;  //el contador
            for (t = 0; t < 10; t++)
            {
                Console.WriteLine(t);
            }

            for (int h = 0; h < 10; h++)
            {
                Console.WriteLine(h);
            }

            int i;
            int j;
            for (i = 0, j = 10; i < j; i++, j--)
            {
                Console.WriteLine("( {0} , {1} )", i, j);
            }
            Console.Read();
        }
    }
}

Bucle while

El bucle while es un bucle que se realiza mientras se cumpla determinada condición.

 

while( condición )
{
    instrucciones;
}

 

 

using System;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
            int i = 0;
            int t = 10;
            while (i < 10 && t > 0)
            {
                Console.WriteLine("{0},{1}",i,t);

                i = i + 1;
                t--;
            }
            Console.Read();
        }
    }
}

Bucle do-while

Se trata de una ligera variante del bucle anterior, con la diferencia de que ahora primero se ejecutan las instrucciones y luego se evalúa la condición, de forma que tiene tiene una estructura:

 

do{
     instrucciones;
}
while( condición );

 

 

using System;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
            string pelar = "no";
            do
            {
                Console.WriteLine("se pelo el banano");
                pelar = "si";
            }
            while (pelar.Equals("si"));
        }
    }
}

Bucle foreach

El bucle foreach se utiliza para hacer iteraciones sobre elementos de una colección, como pueden ser los enteros dentro de un arreglo de enteros.

 

 

using System;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
            int[,] arr = { { 1, 2 }, { 2, 3 } };

            foreach (int elem in arr)
            {
                Console.WriteLine(elem);
            }
            Console.Read();
        }
    }
}

Operadores

Operadores Aritméticos

Operadores Lógicos

Primeros pasos con la consola de c#

  1. Console.Write(" ");
  • ​Escribe en pantalla lo que se tenga dentro de los paréntesis, sin dejar salto de linea.

 

2.  Console.WriteLine(" ");

  • ​Escribe en pantalla lo que se tenga dentro de los paréntesis, dejando salto de linea.

 

3.  Console.ReadLine();

  • ​​Nos permite capturar lo que esta escrito en toda una linea siendo finalizada por un (ENTER).
using System;

namespace Ejemplo1
{
    class Program
    {
        static void Main(string[] args)
        {
            string nombre = null;
            int edad = 0;

            Console.Write("Ingrese su nombre por favor: ");
            nombre = Console.ReadLine();

            Console.Write("Ingrese su edad por favor: ");
            edad = Int32.Parse(Console.ReadLine());

            Console.WriteLine("Hola! {0}, tienes {1} años",nombre, edad.ToString());
            Console.Read();
        }
    }
}

 

Para los comentarios se utiliza:

// Hola soy un comentario

/* Hola soy otro comentario */ 

 

Todas las sentencias tienen que acabar con ;

 

Los delimitadores de bloque son { y }.

Tipos de datos

Importancia de los tipos de datos

Esto significa que, en todas las operaciones, el compilador comprueba los tipos para ver su compatibilidad (C# es fuertemente tipado).

 

Las operaciones no válidas no se compilan. De esta forma se evitan muchos errores y se consigue una mayor fiabilidad.

Los tipos son la base de cualquier programa. Un tipo no es más que un espacio en el que se almacena una información, ya sean números, palabras o tu fecha de nacimiento.

 

Los tipos de datos son especialmente importantes en C# porque es un lenguaje con información de tipos. 

Tipos definidos por el Sistema

  • Construido sobre el Common Type System

 

  • Conceptos básicos:
    • Todo es un objeto
    • Todo tiene herencia implícita de System.Object
    • Distinción entre valores y referencias
      • Por valor: tipos simples, enumeradores, estructuras
      • Por referencia: interfaces, clases, vectores

 

Cada tipo de C# corresponde a un tipo en el Framework .Net

Tipos por valor

Enteros

using System;

class Enteros{
    public static void Main()
    {
        int Minuto = 60;    //segundos por minuto
        int Hora = Minuto*60;
        int Dia = Hora*24;

        long Anio = Dia*365;

        Console.WriteLine("Segundos en un dia: {0}", Dia);
        Console.WriteLine("Segundos en un año: {0}", Anio);
    }
}        
     

Double

using System;

class Flotante{
    public static void Main()
    {
        int a = 2;
        double log2 = Math.Log(2);
        double raiz2 = Math.Sqrt(2);

        Console.WriteLine("El logaritmo de dos es {0}", log2 );
        Console.WriteLine("La raiz de dos es {0}", raiz2 );
    }
}
        
y la salida será la siguiente:

El logaritmo de dos es 0.693147180559945
La raiz de dos es 1.4142135623731 

Decimal

 

El tipo decimal es un tipo "nuevo" en el sentido de que no tiene equivalente en C/C++. Es muy parecido a los tipo de coma flotante float y double.

 

En la aritmética de los tipos de coma flotante ordinarios, se pueden producir leves errores de redondeo. El tipo decimal elimina estos errores y puede representar correctamente hasta 28 lugares decimales. Esta capacidad para representar valores decimales sin errores de redondeo lo hace especialmente eficaz para cálculos monetarios.

Boolean

using System;

class Booleano{
    public static void Main()
    {
        bool b;

        b = true;

        Console.WriteLine("b es {0}", b);

        if(b)
        {   
           Console.WriteLine("esto saldrá");
        }
        b = false;

        if(b)
        {
            Console.WriteLine("esto no saldrá");
        }

        Console.WriteLine("2==2 es {0}", 2==2);
    }
}

 

Para introducir un carácter se utilizan comillas simples, de forma de declarar un carácter sigue la estructura

Permite almacenar un carácter en formato unicode de 16 bits, lo que nos garantiza que los acentos se ven de forma adecuada y además permite la representación de otros alfabetos, como el griego, cirílico, etc. 

char letra = 'a'

De igual forma que hemos hecho con los enteros, es posible declarar un arreglo de char

char[] cadena = {'a', 'b', 'c' };

Tipo Char

Array

Mi primer Array

class Program
{
    static void Main()
    {
	// Use an array.
	int[] values = new int[3];
	values[0] = 5;
	values[1] = values[0] * 2;
	values[2] = values[1] * 2;

	foreach (int value in values)
	{
	    Console.WriteLine(value);
	}
    }
}

Tip # 1

class Program
{
    static void Main()
    {
	// Create an array of three ints.
	int[] array = { 10, 30, 50 };

	foreach (int value in array)
	{
	    Console.WriteLine(value);
	}
    }
}

Tip # 2

class Program
{
    static void Main()
    {
	// Create an array of three ints.
	int[] array = { 10, 30, 50 };

	foreach (int value in array)
	{
	    Console.WriteLine(value);
	}

        for (int i = 0; i < array.Length; i++)
	{
	    Console.WriteLine(array[i]);
	}
    }
}

Tip # 3

class Program
{
    static void Main()
    {
	// Create string array of four references.
	string[] array = new string[4];
	array[0] = "DOT";
	array[1] = "NET";
	array[2] = "PERLS";
	array[3] = 2014.ToString();

	// Display.
	foreach (string value in array)
	{
	    Console.Write(value);
	    Console.Write("... ");
	}
    }
}

Tip # 4

class Program
{
    static void Main()
    {
	int[] array = { -5, -6, -7 };
	Console.WriteLine(Method(array));
    }

    static int Method(int[] array)
    {
	return array[0] * 2;
    }
}

Tip # 5

class Program
{
    static void Main()
    {
	// Write array from Method.
	Console.WriteLine(string.Join(" ", Method()));
    }

    static string[] Method()
    {
	string[] array = new string[2];
	array[0] = "THANK";
	array[1] = "YOU";
	return array;
    }
}

Tip # 6

class Program
{
    static void Main()
    {
	// Simple sort call.
	int[] values = { 4, 7, 2, 0 };
	Array.Sort(values);
	foreach (int value in values)
	{
	    Console.Write(value);
	    Console.Write(' ');
	}
	Console.WriteLine();
    }
}

Tip # 7

class Program
{
    static void Main()
    {
	int[] integerArray = new int[]
	{
	    4,
	    6,
	    8,
	    1,
	    3
	};
	//
	// Display the array
	//
	Console.WriteLine("--- Integer array before ---");
	foreach (int value in integerArray)
	{
	    Console.WriteLine(value);
	}
	//
	// Clear all elements in the array.
	//
	Array.Clear(integerArray, 0, integerArray.Length);
	//
	// Display the array
	//
	Console.WriteLine("--- Integer array after ---");
	foreach (int value in integerArray)
	{
	    Console.WriteLine(value);
	}
    }
}

Tip # 8

class Program
{
    static void Main()
    {
	string[] array = { "cat", "dot", "perls" };

	// Use Array.Exists in different ways.
	bool a = Array.Exists(array, element => element == "perls");
	bool b = Array.Exists(array, element => element == "python");
	bool c = Array.Exists(array, element => element.StartsWith("d"));
	bool d = Array.Exists(array, element => element.StartsWith("x"));

	// Display bools.
	Console.WriteLine(a);
	Console.WriteLine(b);
	Console.WriteLine(c);
	Console.WriteLine(d);
    }
}

Tip # 9

class Program
{
    static void Main()
    {
	// Input array.
	int[] array = { 1, 2, 3 };

	// Print.
	foreach (int value in array)
	{
	    Console.WriteLine(value);
	}
	Console.WriteLine();

	// Reverse.
	Array.Reverse(array);

	// Print.
	foreach (int value in array)
	{
	    Console.WriteLine(value);
	}
	Console.WriteLine();

	// Reverse again.
	Array.Reverse(array);

	// Print.
	foreach (int value in array)
	{
	    Console.WriteLine(value);
	}
    }
}

C# ToLower

C# ToCharArray
C# Substring
C# Split
C# Replace
C# Remove
C# String Length
C# Join
C# Contains

C# Compare

C# CompareTo
C# EndsWith
C# string.Empty
C# string.Format
C# String Equals
C# IndexOf
C# Trim
C# ToUpper

Temas por revisar de la clase String

Ejemplos de los métodos de la clase String

Compare

static void Main(string[] args)
{
    string s1 = "A";
    string s2 = "B";

    Console.WriteLine("Comparación entre '{0}' y '{1}': {2}",
                      s1, s2, String.Compare(s1, s2, true));
    Console.ReadLine();
}

CompareTo

static void Main(string[] args)
{
    string s1 = "A";
    string s2 = "B";

    Console.WriteLine("Comparación entre '{0}' y '{1}': {2}",
                      s1, s2, s1.CompareTo(s2));
    Console.ReadLine();
}

EndsWith

static void Main(string[] args)
{
    string input = "s.com";
    string[] arr = new string[]{
        ".net",
        ".com",
        ".org"
    };

    foreach (string item in arr)
    {
        if (input.EndsWith(item))
        {
            Console.WriteLine(item);
        }

        return;
    }
}

Empty

static void Main(string[] args)
{
    string ross = "";

    string ross3 = String.Empty;

    if (String.IsNullOrEmpty(ross))
    {
        Console.WriteLine("Esta vacia");
    }

    if (!String.IsNullOrEmpty(ross))
    {
        Console.WriteLine("Esta llena");
    }

    string ross2 = " ";

    if (String.IsNullOrWhiteSpace(ross2))
    {
        Console.WriteLine("Tiene espacios");
    }


    string[] values = { null, String.Empty, "ABC" };

    foreach (string value in values)
    {
        Console.WriteLine(String.IsNullOrWhiteSpace(value));
    }

    Console.ReadLine();
}

Format

static void Main(string[] args)
{
    string cadena = "";
    int valor2 = 100;
    DateTime valor3 = new DateTime(2015, 02, 04);

    string resultado = String.Format("{0}: {1}: {2}", cadena, valor2, valor3);

    Console.WriteLine(resultado);

    Console.ReadLine();
}

Equals

static void Main(string[] args)
{
    int m = 1;
    if (m.Equals(2))
    {
        Console.WriteLine("Tu tienes {0} años", m);
    }

    string fruta = "Banano";
    if (fruta.Equals("Banano"))
    {
        Console.WriteLine("Tu fruta preferida es: {0}", fruta);
    }

    Console.ReadLine();
}

IndexOf

static void Main(string[] args)
{
    string value = "Hola Mundo";

    //- 1 no encuentra la palabra
    // si lo encuentra la devuelva la posicion de la letra 
    if (value.IndexOf("Mundo") != -1)
    {
        Console.WriteLine(value.IndexOf("Mundo"));
    }

    Console.ReadLine();
}

Trim

static void Main(string[] args)
{
    string palabra = "     Hola Rossember    ";
    Console.WriteLine(palabra.Trim());
    Console.ReadLine();
}

ToUpper

static void Main(string[] args)
{
    string palabra = "Hola Mundo";
    Console.WriteLine(palabra.ToUpper());
    Console.ReadLine();
}

ToLower

static void Main(string[] args)
{
    string palabra = "Hola Mundo";
    Console.WriteLine(palabra.ToLower());
    Console.ReadLine();
}

ToCharArray

static void Main(string[] args)
{
    string palabra = "Hola Mundo";
    char[]  valores = palabra.ToCharArray();
    int size = valores.Length;
    Console.WriteLine(valores[6]);
    Console.ReadLine();
}

Substring

static void Main(string[] args)
{
    string palabra = "Hola Mundo";
    Console.WriteLine(palabra.Substring(5,1));
    Console.ReadLine();
}

Remove

static void Main(string[] args)
{
    string prueba1 = "0123456";
    string resultado1 = prueba.Remove(3);
    Console.WriteLine(resultado1);
    Console.ReadLine();
}

Replace

static void Main(string[] args)
{
    string saludo = "Bievanidos a C#";
    Console.WriteLine(saludo.Length);
    Console.ReadLine();
}

Remove

static void Main(string[] args)
{
    string prueba1 = "0123456";
    string resultado1 = prueba.Remove(3);
    Console.WriteLine(resultado1);
    Console.ReadLine();
}

Length

static void Main(string[] args)
{
    string saludo = "Bievanidos a C#";
    Console.WriteLine(saludo.Length);
    Console.ReadLine();
}

Join

static void Main(string[] args)
{
    string[] arr = { "Uno", "Dos", "Tres" };
    Console.WriteLine(string.Join(",", arr));

    Console.WriteLine(String.Join(",", arr));
    Console.ReadLine();
}

Contains

static void Main(string[] args)
{
    string saludo = "Bievanidos a C#";
    bool contains = input.Contains("C#");
    Console.Write("Contiene 'C#': ");
    Console.WriteLine(contains);
    Console.ReadLine();
}

Concat String

static void Main()
{
	string s1 = "string1";
	// A.
	// Concat 4 strings, each in a separate statement.
	{
	    string s2 = "string1" + s1;
	    s2 += "string2";
	    s2 += s1;
	    Console.WriteLine(s2);
	}
	// B.
	// Concat 4 strings, in one statement.
	{
	    string s2 = string.Concat("string1",
		s1,
		"string2",
		s1);
	    Console.WriteLine(s2);
	}
	// C.
	// Concat 4 strings using a format string.
	{
	    string s2 = string.Format("string1{0}string2{0}",
		s1);
	    Console.WriteLine(s2);
	}
	// D.
	// Concat 4 strings, three at a time then one.
	{
	    string s2 = "string1" + s1 + "string2";
	    s2 += s1;
	    Console.WriteLine(s2);
	}
	// E.
	// Concat 4 strings, one at a time with StringBuilder.
	{
	    string s2 = new StringBuilder("string1").Append(
		s1).Append("string2").Append(s1).ToString();
	    Console.WriteLine(s2);
	}
	Console.ReadLine();
}

Tuple

static void Main(string[] args)
{
    // Create array of 5-tuples with population data for three U.S. cities, 1940-1950.
    Tuple<string, DateTime, int>[] cities = 
    {
        Tuple.Create("Medellin", new DateTime(1940, 1, 1), 1940),
        Tuple.Create("Los Angeles", new DateTime(1940, 1, 1), 1940)
    };

    // Display header
    string header = String.Format("---{0}--- ---{1}--- ---{2}---\n",
                                  "Ciudad", "Fecha fundación", "Año fundación");
    Console.WriteLine(header);

    string output;
    foreach (var city in cities)
    {
        output = String.Format("--{0}-- --{1:yyyy-mm-dd}-- --{2}--",
                               city.Item1, city.Item2, city.Item3);
        Console.WriteLine(output);
    }

    Console.ReadLine();
}
Made with Slides.com