//Contador que determina los 10 cupos que se pueden asignar en el Avión int contador = 1; //opción que fue seleccionada por el usuario en el menú int opcion = 0; /*Variable que controla la opción que se selecciono cuando no hay cupo en segunda clase*/ int primeraClase = 0; //Clase que permite interactuar con la consola y la clase en ejecución Scanner scaner = new Scanner(System.in); //variable que indica el estado del asiento true esta ocupado, y false esta libre boolean ocupado = false; //Ciclo que se ejecutara 10 veces para asignar los 10 puestos del avión while(contador <= 10){ //Impresión en la consola de los valores con los que trabaja la clase System.out.println("================================="); System.out.println(" MENU PRINCIPAL "); System.out.println("================================="); System.out.println("Escriba [1] para Primera Clase"); System.out.println("Escriba [2] para Seccion Economica"); System.out.println("Escriba [3] Salir"); System.out.println("================================="); System.out.println(); //Aquí se esta leyendo la opción que fue seleccionada opcion = scaner.nextInt(); /*Se le cambia el valor a la variable para que pueda volver a preguntar en el ciclo y no quede con el ultimo valor que le fue asignado*/ ocupado = false; //switch que define que se hace cuando se escriba 1 o 2, y default cualquier otra switch(opcion){ //Asigna los cupos para Primera Clase case 1: //Se puede asignar solo 5 puestos de 0 a 4 for(int i=0;i<5;i++){ //Asigna el valor del arreglo en la posición ocupado = cupo[i]; /*Aquí se pregunta si el valor del arreglo en la posición de i es falso quiere decir que no esta ocupado, por lo tanto se puede asignar de nuevo*/ if(ocupado == false){ //se aumenta el numero de puestos del avión asignados contador++; /*Muestra el asiento que le asigno en primera clase, como el ejercicio trabaja solo de 1 hasta 10 se le suma 1 al valor de la posición*/ System.out.println("**Primera Clase** Asiento : "+(i+1)); /*Asigna el valor de true al arreglo en esa posición, para indicar que esta ocupado en asiento*/ cupo[i] = true; /*Sale del ciclo for, por que ya asigno el asiento no necesita buscar asientos vacíos*/ break; } } /*Aquí indica que si la variable ocupado esta en true quiere decir que ya no hay mas cupos disponibles*/ if(ocupado == true){ //Imprime el mensaje que no existen cupos disponibles System.out.println("No hay cupo en primera clase."); /*Se coloca contador en 11 para que la validación del while de false y se salga*/ contador = 11; } break; case 2: //Aqui se asignan el resto de cupos for(int i=5;i<10;i++){ //Asigna el valor del arreglo en la posición ocupado = cupo[i]; /*Aquí se pregunta si el valor del arreglo en la posición de i es falso quiere decir que no esta ocupado, por lo tanto se puede asignar de nuevo */ if(ocupado == false){ //se aumenta el numero de puestos del avión asignados contador++; /*Muestra el asiento que le asigno en la Sección Económica, como el ejercicio trabaja solo de 1 hasta 10 se le suma 1 al valor de la posición*/ System.out.println("Seccion Economica Asiento : "+(i+1)); /*Aquí indica que si la variable ocupado esta en true quiere decir que ya no hay mas cupos disponibles*/ cupo[i] = true; /*Sale del ciclo for, por que ya asigno el asiento no necesita buscar asientos vacíos*/ break; } } /*Aquí indica que si la variable ocupado esta en true quiere decir que ya no hay mas cupos disponibles*/ if(ocupado == true){ //Se le informa al usuario que no existen cupos disponibles System.out.println("No existe cupo, desea un asiento en primera clase, marque 1."); //Recoge la opcion que digito el usuario primeraClase = scaner.nextInt(); /*Si el usuario digito el numero 1, entonces se le asigna un asiento en primera clase*/ if(primeraClase == 1){ //Aqui el comportamiento el mismo que en el for de primera clase for(int i=0;i<5;i++){ ocupado = cupo[i]; if(ocupado == false){ contador++; System.out.println("**Primera Clase** Asiento : "+(i+1)); cupo[i] = true; break; } } }else{ /*El usuario digito un numero diferente al 1, la validación del while da false y se sale*/ contador=11; } } break; default: //El usuario selecciono cualquier otro numero diferente de 1 y 2 System.out.println("<<Fin>>"); //Se coloca contador en 11 para que la validación del while de false contador=11; } } } }