var userName = input.question('Please enter your name: '); console.log('\nHi ' + userName + ', please select your choice:'); var choice = input.question('1. Display Name 2. Display Age'); while (choice == 1 { console.log ("Hello"); var choice = input.questionFloat('\1. Display Name 2. Display Age'); } while (choice == 2 { console.log ("Hello"); var subChoice = input.question('1. Display date 2. Display time'); while (subChoice == 1) { console.log ("Hello"); } while (subChoice == 2) { console.log('\nHi ' + userName + ', please select your choice:'); var choice = input.questionFloat('\1. Display Name 2. Display Age'); } }El primer bloque de código le pide al usuario su nombre, después de lo cual se le pedirá al usuario que ingrese la opción 1 o 2.
La elección que eligió el usuario se almacenará en choice . Tengo tanto la choice como la subChoice . subChoice viene después de que el usuario seleccione choice . En este caso, para acceder a la subChoice 1 o 2 , el usuario deberá seleccionar primero la choice 2. Si quiero salir de la subChoice , tendría que seleccionar la subChoice 2, que me llevará de vuelta a las choice 1 y 2.
Sin embargo, el problema al que me enfrento es que después de volver a la opción 1 o 2, la variable nombre de userName ya no contiene un valor o una cadena. Además, cuando selecciono otras opciones, es decir, la choice 1, no hace nada más que volver a preguntarme lo mismo sin nombre de usuario y bucles en la userName subChoice == 2 en sí.
Hay alguna solución para esto?
Use la estructura if nuevamente contra el ciclo while. Los paréntesis de cierre faltaban en casi todas las condiciones. Usó var de nuevo en lugar de let y volvió a declarar la variable de elección varias veces.
No puedo ejecutar el código aquí, pero algo como esto debería funcionar:
let userName = input.question('Please enter your name: '); console.log('\nHi ' + userName + ', please select your choice:'); let choice = input.question('1. Display Name 2. Display Age'); if (choice == 1) { console.log ("Hello"); choice = input.questionFloat('\1. Display Name 2. Display Age'); } if (choice == 2) { console.log ("Hello"); let subChoice = input.question('1. Display date 2. Display time'); if (subChoice == 1) { console.log ("Hello"); } if (subChoice == 2) { console.log('\nHi ' + userName + ', please select your choice:'); choice = input.questionFloat('\1. Display Name 2. Display Age'); } }