Test Foro de elhacker.net SMF 2.1

Programación => Programación C/C++ => Mensaje iniciado por: Beginner Web en 3 Julio 2019, 03:11 AM

Título: duda con el switch
Publicado por: Beginner Web en 3 Julio 2019, 03:11 AM
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;
}
}

;-)
Título: Re: duda con el switch
Publicado por: codX en 3 Julio 2019, 03:27 AM
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++
Título: Re: duda con el switch
Publicado por: @XSStringManolo en 3 Julio 2019, 17:19 PM
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";
Título: Re: duda con el switch
Publicado por: Beginner Web en 4 Julio 2019, 02:24 AM
qeuridismo string Manolo, quiere decir que si no coloco el default no pasa nada? mi idea era esa entonces lo he logrado  ;-)