gentoo linux, java, software libre y otras hierbas
dic, 10 2007 - 4:30 pm

[código] C#, instrucciones de control

Ya tratabamos antes la instrucción if y while en C#… ahora vamos a tratar más instrucciones de control. Los programas corren tanto en plataformas Microsoft usando Visual Studio, como en cualquier otra plataforma usando Mono. Tal vez quieras visitar leer estas entradas: Cómo crear aplicaciones en C# usando Visual Studio o C#, crear una aplicación usando Mono.Tal como pueden apreciar, los en ejemplos se muestra cómo compilar y ejecutar con Mono, pero si lo que quieres es hacerlo con Visual Studio, no te preocupes, aquí te explico como se hace.

Repeticion controlada por contador usando While

using System;
class ContadorWhile
{
	static void Main( string[] args )
	{
		int contador = 1;          // initialización
		while ( contador <= 5 )    // repetición condition
		{
			Console.WriteLine( contador );
			contador++;             // incremento
		} // end while
	} // fin del método Main
} // fin de la clase ContadorWhile

casidiablo@punko:~/c#> mcs ContadorWhile.cs
casidiablo@punko:~/c#> mono ContadorWhile.exe
1
2
3
4
5

Descargar código fuente

Repetición controlada por contador usando la estructura for

using System;
class ContadorFor
{
   static void Main( string[] args )
   {
      // inicialización ; condición de repetición ; incremento
      for ( int contador = 1; contador <= 5; contador++ )
         Console.WriteLine( contador );
   }
}

casidiablo@punko:~/c#> mcs ContadorFor.cs
casidiablo@punko:~/c#> mono ContadorFor.exe
1
2
3
4
5

Descargar código fuente

Sumatoria usando la estructura for

using System;
using System.Windows.Forms;
class SumaDialogo
{
	static void Main( string[] args )
	{
		int suma = 0;
		for ( int numero = 2; numero <= 100; numero += 2 )
			suma += numero;
		MessageBox.Show( "La suma es " + suma,
				 "Sumando cada entero desde 2 hasta 100",
				 MessageBoxButtons.OK,
				 MessageBoxIcon.Information );
	} // fin del método Main
} // fin de la clase SumaDialogo

casidiablo@punko:~/c#> mcs -reference:/usr/lib/mono/1.0/System.Windows.Forms.dll SumaDialogo.cs
casidiablo@punko:~/c#> mono SumaDialogo.exe

c# mono

Descargar código fuente

Calculando el incremento del interés usando el for

using System;
using System.Windows.Forms;
class Interes
{
	static void Main( string[] args )
	{
		decimal cantidad, principal = ( decimal ) 1000.00;
		double porcentaje = .05;
		string salida;
		salida = "Año       Cantidad del Depósito\n";
		for ( int anio = 1; anio <= 10; anio++ )
		{
			cantidad = principal *
					( decimal ) Math.Pow( 1.0 + porcentaje, anio );
			salida += anio + "             " +
					String.Format( "{0:C}", cantidad ) + "\n";
		}
		MessageBox.Show( salida, "Aumento del Interes",
				 MessageBoxButtons.OK, MessageBoxIcon.Information );
	} // fin del método Main
} // fin de la clase Interes

casidiablo@punko:~/c#> mcs -reference:/usr/lib/mono/1.0/System.Windows.Forms.dll Interes.cs
casidiablo@punko:~/c#> mono Interes.exe

c# mono

Descargar código fuente

Uso de la sentecia switc: Contando letras

using System;
class TestSwitch
{
	static void Main( string[] args )
	{
		char letra;      // una letra
		int aContador = 0, // numero de As
		bContador = 0, // numero de Bs
		cContador = 0, // numero de Cs
		dContador = 0,  // numero de Ds
		fContador = 0;  // numero de Fs
		for ( int i = 1; i <= 10; i++ )
		{
			Console.Write( "Enter a letter letra: " );
			letra = Char.Parse( Console.ReadLine() );
			switch ( letra )
			{
				case 'A':   // letra está en mayúscula A
				case 'a':   // o miníscula a
					++aContador;
					break;
				case 'B':   // letra está en mayúscula B
				case 'b':   // o miníscula b
					++bContador;
					break;
				case 'C':   // letra está en mayúscula C
				case 'c':   // o miníscula c
					++cContador;
					break;
				case 'D':   // letra está en mayúscula D
				case 'd':   // o miníscula d
					++dContador;
					break;
				case 'F':   // letra está en mayúscula F
				case 'f':   // o miníscula f
					++fContador;
					break;
				default:    // processes all other characters
					Console.WriteLine(
							"Ha digitado una letra incorrecta." +
							"\nDigite una nueva letra" );
					break;
			} // fin switch
		} // fin for
		Console.WriteLine(
				"\nLos totales para cada letra son:\nA: {0}" +
				"\nB: {1}\nC: {2}\nD: {3}\nF: {4}", aContador, bContador,
		cContador, dContador, fContador );
	} // fin del metodo Main
} // fin de la clase TestSwitch

casidiablo@punko:~/c#> mcs TestSwitch.cs
casidiablo@punko:~/c#> mono TestSwitch.exe
Enter a letter letra: a
Enter a letter letra: b
Enter a letter letra: a
Enter a letter letra: f
Enter a letter letra: c
Enter a letter letra: e
Ha digitado una letra incorrecta.
Digite una nueva letra
Enter a letter letra: A
Enter a letter letra: B
Enter a letter letra: c
Enter a letter letra: d

Los totales para cada letra son:
A: 3
B: 2
C: 2
D: 1
F: 1

Descargar código fuente

La estructura de repetición do/while

using System;
class PruebaDoWhile
{
	static void Main( string[] args )
	{
		int contador = 1;
		do
		{
			Console.WriteLine( contador );
			contador++;
		} while ( contador <= 5 );
	} // fin del método Main
} // fin de la clase PruebaDoWhile

casidiablo@punko:~/c#> mcs PruebaDoWhile.cs
casidiablo@punko:~/c#> mono PruebaDoWhile.exe
1
2
3
4
5

Descargar código fuente

Usando la sentencia break para romper un for

using System;
using System.Windows.Forms;
class PruebaBreak
{
	static void Main( string[] args )
	{
		string salida = "";
		int contador;
		for ( contador = 1; contador <= 10; contador++ )
		{
			if ( contador == 5 )
				break;           // romper el ciclo si contador == 5
			salida += contador + " ";
		} // fin del ciclo
		salida += "\nSe rompió el ciclo cuando el contador era = " + contador;
		MessageBox.Show( salida, "Demostracion de la sentencia break",
				 MessageBoxButtons.OK, MessageBoxIcon.Information );
	} // fin del método Main
} // fin de la clase PruebaBreak

casidiablo@punko:~/c#> mcs -reference:/usr/lib/mono/1.0/System.Windows.Forms.dll PruebaBreak.cs
casidiablo@punko:~/c#> mono PruebaBreak.exe

Descargar código fuente

Usando la sentencia continue en una estructura for

using System;
using System.Windows.Forms;
class PruebaContinue
{
	static void Main( string[] args )
	{
		string salida = "";
		for ( int contador = 1; contador <= 10; contador++ )
		{
			if ( contador == 5 )
				continue;       // si contador es 5 saltarse el resto
			salida += contador + " ";
		}
		salida += "\ncontinue usado cuando contador = 5";
		MessageBox.Show( salida, "Usando la sentencia continue",
		       MessageBoxButtons.OK, MessageBoxIcon.Information );
   } // fin del método Main
} // fin de la clase PruebaContinue

casidiablo@punko:~/c#> mcs -reference:/usr/lib/mono/1.0/System.Windows.Forms.dll PruebaContinue.cs
casidiablo@punko:~/c#> mono PruebaContinue.exe

Descargar código fuente

Demostracón de los operadores lógicos

using System;
class OperadoresLogicos
{
	static void Main( string[] args )
	{
		// probando el operador condicional AND (&amp;amp;&amp;amp;)
		Console.WriteLine( "Condicional AND (&amp;amp;&amp;amp;)" +
				"\nfalse &amp;amp;&amp;amp; false: " + ( false &amp;amp;&amp;amp; false ) +
				"\nfalse &amp;amp;&amp;amp; true: " + ( false &amp;amp;&amp;amp; true ) +
				"\ntrue &amp;amp;&amp;amp; false: " + ( true &amp;amp;&amp;amp; false ) +
				"\ntrue &amp;amp;&amp;amp; true:   " + ( true &amp;amp;&amp;amp; true ) );
		// probando el operador condicional OR (||)
		Console.WriteLine( "\n\nConditional OR (||)" +
				"\nfalse || false: " + ( false || false ) +
				"\nfalse || true: " + ( false || true ) +
				"\ntrue || false: " + ( true || false ) +
				"\ntrue || true:   " + ( true || true ) );
		// probando el operador logico AND (&amp;amp;)
		Console.WriteLine( "\n\nOperador Logico AND (&amp;amp;)" +
				"\nfalse &amp;amp; false: " + ( false &amp;amp; false ) +
				"\nfalse &amp;amp; true: " + ( false &amp;amp; true ) +
				"\ntrue &amp;amp; false: " + ( true &amp;amp; false ) +
				"\ntrue &amp;amp; true:   " + ( true &amp;amp; true ) );
		// probando el operador logico OR (|)
		Console.WriteLine( "\n\nOperador Logico OR (|)" +
				"\nfalse | false: " + ( false | false ) +
				"\nfalse | true: " + ( false | true ) +
				"\ntrue | false: " + ( true | false ) +
				"\ntrue | true:   " + ( true | true ) );
		// probando el operador logico exclusivo OR (^)
		Console.WriteLine( "\n\nLogico exclusivo OR (^)" +
				"\nfalse ^ false: " + ( false ^ false ) +
				"\nfalse ^ true: " + ( false ^ true ) +
				"\ntrue ^ false:  " + ( true ^ false ) +
				"\ntrue ^ true:   " + ( true ^ true ) );
		// probando el operador logico NOT (!)
		Console.WriteLine( "\n\nLogical NOT (!)" +
				"\n!false: " + ( !false ) +
				"\n!true: " + ( !true ) );
	}
}

casidiablo@punko:~/c#> mcs OperadoresLogicos.cs
casidiablo@punko:~/c#> mono OperadoresLogicos.exe
Condicional AND (&&)
false && false: False
false && true: False
true && false: False
true && true: True


Conditional OR (||)
false || false: False
false || true: True
true || false: True
true || true: True


Operador Logico AND (&)
false & false: False
false & true: False
true & false: False
true & true: True


Operador Logico OR (|)
false | false: False
false | true: True
true | false: True
true | true: True


Logico exclusivo OR (^)
false ^ false: False
false ^ true: True
true ^ false: True
true ^ true: False


Logical NOT (!)
!false: True
!true: False

Descargar código fuente

Los ejercicios utilizados en este post están basados en ejemplos del libro C# How to Program de Deitel. Se pone a disposición la descargar del programa original, desarrollado para trabajar sobre Visual Studio de Microsoft en plataformas Windows, y se encuentra en inglés. La versión simplificada está basada en la original, pero sin código basura insertado por Visual Studio, se encuentra en español y ha sido probada sobre Gnu/Linux usando Mono.

2 Comentarios | deja el tuyo

2 Comentarios en “[código] C#, instrucciones de control”

  1. ever dice:

    me gusta pagina por que me despeja muchas dudas.
    gracias

  2. marco dice:

    SI TIENES RAZON MUY BUENO ESTOS DESPEJOS DEL C# BUENO ACA TENGO ALGO INTERESANTE PARA TODOS.
    ESTO ES EN APLICACION DE CONSOLA.

    using System;
    using System.Collections.Generic;
    using System.Text;

    namespace ConsoleApplication67
    {
    class Program
    {
    static void Main(string[] args)
    {
    int cua, cub, s1=0, s2=0, x;
    int n;
    x = 1;
    Console.Write(“\n Ingresa un numero mayor a 0: “);
    n = int.Parse(Console.ReadLine());

    do
    {
    Console.Write(“\n ” + x);
    cua = x * x;
    cub = cua * x;
    s1 = s1 + cua;
    s2 = s2 + cub;
    x = x – 1;
    } while (x <= n);
    Console.Write(“\n EL CUADRADO ES: “+s1);
    Console.Write(“\n EL CUBO ES: “+s2);

    Console.ReadLine();
    }
    }
    }

    SI TIENE EJERCICIOS ASI PARECIDOS ENVIENLOS POR FAVOR. ES Q TENGO VARIAS DUDITAS :) , PERDON SI NO ES MUCHO PERDIR ALGUIEN TENDRA EN EL C# UN CAJERO PRE HECHO PARA VERLO PS TENGO UN TRABAJO DE ESO PERO NO SE COMO HACERLO TENGO ALGUNAS DUDAS.

    ATE MARQUITO

¡Déjanos tu comentario!