Hola
@ian007lol !
Para este tipo de situaciones podrias utilizar una variable que tenga un 1 o un 0 (nose si en C++ hay booleans asique lo hare con 1 y 0 en C que seguro podes traducir)
. const int Nina = 2403;
. const int Escuela = 1234;
. const int Adam = 131199;
. const int Antonio = 201066;
. const int Ian = 240702;
. const int Cristina = 221167;
.
. int Pin;
. int valido = 0;
.
. while(valido == 0) {
. System("cls");
. printf("\nInserta el Pin..: ");
. scanf("%d", &Pin);
. valido = validarPin(Pin);
. }
.
. int validarPin(pin) {
. pinValido = 0;
. switch (pin):
. case Nina:
. pinValido = 1;
. break;
. case Escuela:
. pinValido = 1;
. break;
. case Cristina:
. pinValido = 1;
. break;
. case Antonio:
. pinValido = 1;
. break;
. case Adam:
. pinValido = 1;
. break;
. . case Iam:
. pinValido = 1;
. break;
. default:
. pinValido = 0;
. break;
.
. return pinValido;
. }
No creo que este codigo compile, pero te da una idea de por donde ir.
Lo que hicimos es llevar toda la concición que estaba dentro del while a una función para que el codigo sea mas legible y al mismo tiempo que puedas reutilizar esa validación cada vez que la necesites sin escribir if... if... if...
Aclaracion, dentro de la función puedes utilizar las variables que fueron definidas arriba porque estan como constantes en un scope global, si no hubiera sido asi, deberias haberlas definido dentro de la misma función.
Espero haberte ayudado, Saludos !