duda con el switch

Iniciado por Beginner Web, 3 Julio 2019, 03:11 AM

0 Miembros y 1 Visitante están viendo este tema.

Beginner Web

hola amigos de foro "el hacker"

tenia una duda acerca de la condicion multiple switch, que pasa si recibo en un procedimiento un valor entero que sea solamente 0, 1 o 2 pero dentro del switch solo contemple el valor/case 1 y 2 , ¿ el valor/case 0 queda descartado? ¿Y es valido esto?

Código (cpp) [Seleccionar]
void casos(int n){//Por aca entró un 0, 1 o 2
stwitch(n){
  case 1: cout<<"Hola"<<endl;break;
  case 2: cout<<"Adios"<<endl;break;
}
}

;-)
7w7

codX

Hola begginer, por supuesto el valor 0 queda descartado y switch solamente testeará lo que aparezca en el bloque switch. Al menos así es en los lenguajes que conozco. No creo que sea distinto en c++

@XSStringManolo

#2
Si el 0 asi como el resto de case no incluidos no se hará nada.
Tienes case: default para manejarlos.

Cuando quieras definir una variable en un case necesitarás usar las llaves {}

A mi me gusta ordenalos así para buena lectura:

Código (cpp) [Seleccionar]
switch (static_cast<int>(variableChar))
{
     case: 'a':
     {
     int numero = 7;
     char miLetra = 'a';
     miString string1 ="h";
     miString string2;
     string2 += string1;
     } break;

     case 'b':
     {
     \* Lo mismo
     que arriba...*/
     } break;

     case default:
     {
     std::cout<< "La letra no es \"a\"" << std::endl;
     std::cout<< "La letra no es \"b\"" << std::endl;
     
           if (variableChar > ultimoChar || variableChar < primerChar)
           {
           std::cout << "El numero no corresponde a un caracter" << std::endl;
           }

    } break;
}


Switch solo acepta números int. Debes hacer casts en algunos casos. Lo bueno es que puedes recorrer strings vectores arrays etc con el operador de array tipo:
Código (cpp) [Seleccionar]
for (int i = 0; i <variableString.size(); ++i)
{
     
     switch (variableString[i])
    {
           case 'a':
          {
           cout << "El string contiene la letra a en la posicion" << i << endl;
           string retorno;
           retorno += "a";
          } break;

          .....
    }
Blabla += retrono;
}

cout << retorno << " encontrados.";

Uso mucho estes tipos de switchs para cifrados.

varChar = 'A';
........
........
........
........
case 0:
if (varString == static_cast<int>(varChar) )
{
ValorAscii = 65;
StringConTodoElBinario += "01000001";

Beginner Web

qeuridismo string Manolo, quiere decir que si no coloco el default no pasa nada? mi idea era esa entonces lo he logrado  ;-)
7w7