Os escribo porqe tengo un problema con un ejercicio de un curso de java el cual consiste en crear una clase Alumno y utilizarla con el resto de ejercicios anteriores. El problema es que si ejecuto el programa tal cual cuando llega a una sentencia case 5: de un bucle switch se salta las sentencias dentro de ese bloque hasta el break; que cierra ese bloque, pero el break; lo ejecuta porque sale del bucle, pero si lo ejecuto en modo de depuracion para ver el fallo cuando el método que le paso como condición vale 5 el bloque de sentencias se ejecuta perfectamente y el programa funciona como debe funcionar. A continuación os dejo la clase principal del proyecto para que veais so todo esta bien escrito. si necesitais algún archivo más de proyecto, decidmelo y subo un zip. Muchas gracias de antemano y feliz año 2013 a todos.
Código:
package exitae.unidad2; import java.util.Scanner; public class Main{ private static Scanner scan = new Scanner(System.in); static Escuela uni; public static void main(String[] args) { uni = new Escuela(); Alumno tmpA = new Alumno(); Profesor tmpP = new Profesor(); uni.add(tmpP); uni.add(tmpA); int resul = pintamenu(); while(resul!=0){ switch (resul){ case 1: assign(); resul = pintamenu(); break; case 2: tmpA = new Alumno(); uni.add(tmpA); resul = pintamenu(); break; case 3: tmpP = new Profesor(); uni.add(tmpP); resul = pintamenu(); break; case 4: Aula tmpAula = new Aula(); uni.add(tmpAula); resul = pintamenu(); break; case 5: // Aquí da el fallo System.out.print("- "); // esto no se ejecuta si no en debug muestra(); //esto tampoco resul = pintamenu();// esto ya si break; default: if(pintamenu()==0){ System.exit(0); }else { System.out.println("Error: Numero introducido no valido"); resul = pintamenu(); break; } } } } public static void muestra() { System.out.println("Informe de estado"); System.out.println("................."); System.out.println(""); for (int i=0;i<uni.getProfesores();i++){ String nm=uni.prof.get(i).getName(),ap=uni.prof.get(i).getApe(); System.out.println("El profesor: " + nm + " " + ap + " de la escuela " + uni.getName() + " está a cargo de los Alumnos: "); System.out.println("..................................."); System.out.println(); for(int j=0;j<uni.prof.get(i).alumnosasucargo.size();j++){ String nam=uni.prof.get(i).alumnosasucargo.get(j).getName(); String ape=uni.prof.get(i).alumnosasucargo.get(j).getApe(); int age=uni.prof.get(i).alumnosasucargo.get(j).getEdad(); String cur=uni.prof.get(i).alumnosasucargo.get(j).getCurso(); int not=uni.prof.get(i).alumnosasucargo.get(j).getNota(); System.out.println("--> " + nam + " " + ape + " de " + age + " años, cursando " + cur + " con un nota media actual de: " + not); System.out.println(); } } System.out.println(); System.out.println("La escuela: " + uni.getName() + " tiene " + uni.getAulas()+" Aulas"); System.out.println(); for (int x=0;x<uni.getAulas();x++){ int sizetmp = uni.aulas.get(x).getSize(); System.out.println("Aula: " +(x+1)+ " tamaño: " + sizetmp); } System.out.println(); } public static void assign() { System.out.println("¿Qué alumno asignar a un profesor?"); System.out.println("................................."); System.out.println(); for (int i=0;i<Alumno.alumnos.size();i++){ System.out.println(i + " . " + Alumno.alumnos.get(i).getName() + " " + Alumno.alumnos.get(i).getApe()); } System.out.println(); System.out.print("Introduzca un numero de alumno: "); int a = scan.nextInt(); scan.nextLine(); System.out.println(); System.out.println(); Alumno al = Alumno.getalumbyid(a); System.out.println("¿A qué profesor?"); System.out.println("................"); System.out.println(); for(int j=0;j<uni.prof.size();j++){ System.out.println(j + " . " + uni.prof.get(j).getName() + " " + uni.prof.get(j).getApe()); } System.out.println(); System.out.print("Elija un profesor: "); int p = scan.nextInt(); scan.nextLine(); System.out.println(); System.out.println(); Profesor pr = Profesor.getprofbyid(p); pr.assignAlumno(al); } static public int pintamenu(){ System.out.println("1 - Asignar alumno a profesor"); System.out.println("2 - Nuevo Alumno"); System.out.println("3 - Nuevo Profesor"); System.out.println("4 - Nueva Aula"); System.out.println("5 - ver todos los profesores y sus alumnos"); System.out.println("-----------------------------"); System.out.println("0 - Salir."); System.out.println(""); System.out.print("Elige una opción: "); int e = scan.nextInt(); scan.nextLine(); System.out.println(); System.out.println(); return e; } }