Miniatura Instrucción Switch Case | Programacion en alta Miniatura
miércoles, 16 de mayo de 2012

Instrucción Switch Case

0 comentarios
Las instrucciones Switch Case son un sustituto por mucho tiempo si las declaraciones que comparan una variable para varios valores de "integrales" ("integral" los valores son simplemente los valores que se pueden expresar como un número entero, como el valor de un char). El formato básico para el uso de Switch Case se describe a continuación. El valor de la variable dada en el interruptor se compara con el valor después de cada uno de los casos, y cuando un valor coincide con el valor de la variable, el ordenador continúa ejecutando el programa desde ese punto.
switch (  ) {
case this-value:
  //Código a ejecutar si la sentencia es verdadera.
  //break;
case that-value:
  //Código a ejecutar si la sentencia es verdadera.
  //break;
...
default:
  //Código a ejecutar si las sentencias anteriores no se cumplen.
  //break;
}

DEV C++ 

La condición de una instrucción switch es un valor. El caso, dice que si tiene el valor de lo que sea después de ese caso, entonces no lo sigue el de colon. La ruptura se utiliza para salir de las sentencias case. Break es una palabra clave que sale de un bloque de código, generalmente rodeadas por llaves, que es encuentra, en este caso, ruptura impide que el programa de caer a través y ejecutar el código en todas las declaraciones de otros casos. Una cosa importante a tener en cuenta sobre la sentencia switch es que los valores caso sólo podrá ser constantes expresiones integrales. Lamentablemente, no es legal usar el caso como éste:
int a = 10;
int b = 10;
int c = 20;

switch ( a ) {
case b:
  // Code
  break;
case c:
  // Code
  break;
default:
  // Code
  break;
}
El caso por defecto es opcional, pero es conveniente incluirlo ya que maneja todos los casos inesperados. Instrucciones Switch Case sirven como una forma sencilla de escribir mucho si las declaraciones cuando se cumplen los requisitos. A menudo se puede utilizar para procesar la entrada de un usuario. Bueno ahora un pequeño ejemplo del Switch Case: Si una expresión coincidente, el control no esté impedido por caso, posterior o etiquetas predeterminadas. La sentencia break se utiliza para detener la ejecución y transferir el control a la instrucción después de la sentencia switch. Sin una instrucción break, cada palabra de la etiqueta caso coincide con el extremo del interruptor, incluyendo el valor predeterminado, se ejecuta. Por ejemplo:
// switch_statement1.cpp
#include 

int main() {
   char *buffer = "Any character stream";
   int capa, lettera, nota;
   char c;
   capa = lettera = nota = 0;

   while ( c = *buffer++ )   // Walks buffer until NULL
   {
      switch ( c )
      {
         case 'A':
            capa++;
            break;
         case 'a':
            lettera++;
            break;
         default:
            nota++;
      }
   }
   printf_s( "\nUppercase a: %d\nLowercase a: %d\nTotal: %d\n",
      capa, lettera, (capa + lettera + nota) );
}
En el ejemplo anterior, Capa se incrementa si c es una mayúscula A. La sentencia Break después de la Capa + + termina la ejecución del cuerpo de la instrucción switch y el control pasa al bucle While. Sin la sentencia Break, lettera nota y también se incrementa. Un objetivo similar es servida por la sentencia Break para el caso de la 'a'. Si c es una minúscula, lettera se incrementa y la sentencia break termina el cuerpo de la instrucción Switch. Si c no es una A o A, la declaración por defecto se ejecuta. Un bloque interior de una instrucción switch puede contener definiciones con inicializaciones, siempre que son alcanzables - es decir, sin anular por todos los caminos de ejecución posibles. Los nombres introducidos con estas declaraciones tienen un ámbito local. Por ejemplo:
// switch_statement2.cpp
// C2360 expected
#include 
using namespace std;
int main(int argc, char *argv[])
{
   switch( tolower( *argv[1] ) )
   {
       // Error. Unreachable declaration.
       char szChEntered[] = "Character entered was: ";
   
   case 'a' :
       {
       // Declaration of szChEntered OK. Local scope.
       char szChEntered[] = "Character entered was: ";
       cout << szChEntered << "a\n";
       }
       break;
   
   case 'b' :
       // Value of szChEntered undefined.
       cout << szChEntered << "b\n";
       break;
   
   default:
       // Value of szChEntered undefined.
       cout << szChEntered << "neither a nor b\n";
       break;
   }
}
Una sentencia switch se pueden anidar. En tales casos, las etiquetas de caso o por defecto a la declaración más cercano interruptor que les rodea.

Visual C++ con Windows Forms:

Bueno como en todos mis tutoriales de Windows Forms tengo que explicar paso a paso aquí estan los pasos a seguir:
1.- Crear el proyecto de Visual C++ con Windows Forms.
2.- Insertar un TextBox.
3.- Insertar un Label.
4.- Ir a la ventana de Propiedades y presionar el Rayo que son los eventos y allí buscar el evento llamado KeyPress y dar doble clic sobre el espacio en blanco a un lado del nombre.
5.- una vez hecho esta nos colocará automaticamente en el código del KeyPress y ponemos el siguiente código:
switch(e->KeyChar)
 {
  case 'a': 
  case 'e': 
  case 'i':
  case 'o':
  case 'u':
   label1->Text=("Vocal");
   break;

  default:
   label1->Text=("Consonante");
 }
Bueno como veremos tendremos que poner el Switch que es con el que estamos trabajando en este tutorial y luego veremos que hay un texto encerrado entre parentesis así:
(e->KeyChar)
Esto nos indica que al presionar el textBox1 o al cambiarle el valor cuando este compilando realizará las siguientes acciones "case" las "case" que se presentan son como un If en el cual decimos que si la letra en el TextBox es "a" o la letra es "e" asi hasta la "u" realizará una accion que se describe despues de los Cases bueno despues de la acción que en este caso le decimos que cambie el texto del label1 por "Vocal" va una instrucción llamada "break", esta instrucción nos sirve para decirle al programa que pare y que siga con la siguiente linea de código si esto no se cumple. Luego veremos la instrucción "default:" que es la que le decimos como si fuera el ELSE, en esta instrucción decimos que si no se cumplió todo lo anterior es decir que si la letra no es vocal entonces que mande al label el texto de "Consonante". No olvidemos siempre terminar nuestras instrucciones con el punto y coma y las correspondientes llaves "{}". Y por último así es como debió de quedar todo nuestro código y su respectiva imagen de como quedó el formulario en ejecución.
#pragma once

namespace SWITCHCASE {

 using namespace System;
 using namespace System::ComponentModel;
 using namespace System::Collections;
 using namespace System::Windows::Forms;
 using namespace System::Data;
 using namespace System::Drawing;

 /// 
 /// Resumen de Form1
 /// 
 public ref class Form1 : public System::Windows::Forms::Form
 {
 public:
  Form1(void)
  {
   InitializeComponent();
   //
   //TODO: agregar código de constructor aquí
   //
  }

 protected:
  /// 
  /// Limpiar los recursos que se estén utilizando.
  /// 
  ~Form1()
  {
   if (components)
   {
    delete components;
   }
  }

 private: System::Windows::Forms::TextBox^  textBox1;
 private: System::Windows::Forms::Label^  label1;
 protected: 

 private:
  /// 
  /// Variable del diseñador requerida.
  /// 
  System::ComponentModel::Container ^components;

#pragma region Windows Form Designer generated code
  /// 
  /// Método necesario para admitir el Diseñador. No se puede modificar
  /// el contenido del método con el editor de código.
  /// 
  void InitializeComponent(void)
  {
   this->textBox1 = (gcnew System::Windows::Forms::TextBox());
   this->label1 = (gcnew System::Windows::Forms::Label());
   this->SuspendLayout();
   // 
   // textBox1
   // 
   this->textBox1->Location = System::Drawing::Point(85, 90);
   this->textBox1->Name = L"textBox1";
   this->textBox1->Size = System::Drawing::Size(100, 20);
   this->textBox1->TabIndex = 1;
   this->textBox1->KeyPress += gcnew System::Windows::Forms::KeyPressEventHandler(this, &Form1::textBox1_KeyPress);
   // 
   // label1
   // 
   this->label1->AutoSize = true;
   this->label1->Location = System::Drawing::Point(113, 129);
   this->label1->Name = L"label1";
   this->label1->Size = System::Drawing::Size(35, 13);
   this->label1->TabIndex = 2;
   this->label1->Text = L"label1";
   // 
   // Form1
   // 
   this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
   this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
   this->ClientSize = System::Drawing::Size(284, 261);
   this->Controls->Add(this->label1);
   this->Controls->Add(this->textBox1);
   this->Name = L"Form1";
   this->Text = L"Form1";
   this->ResumeLayout(false);
   this->PerformLayout();

  }
#pragma endregion
 private: System::Void textBox1_KeyPress(System::Object^  sender, System::Windows::Forms::KeyPressEventArgs^  e) {
 switch(e->KeyChar)
 {
  case 'a': 
  case 'e': 
  case 'i':
  case 'o':
  case 'u':
   label1->Text=("Vocal");
   break;

  default:
   label1->Text=("Consonante");
 }
    }
 };
}

Bueno amigos pues esto ha sido todo por el momento y espero que les haya servido de algo este tutorial, nos vemos en la próxima.

Leave a Reply

Con la tecnología de Blogger.

Etiquetados