problem ze zbyt wczesnym wychodzeniu z programu

0

Witam,
temat może być dość nieprecyzyjny ale nie wiedziałam jak streścić problem w kilku wyrazach.
Ale do rzeczy.
Napisałam program wykorzystujący iteratory, program ma na celu wyszukanie studentów ze średnią powyżej np. 4. Program cacy działa tylko chodzi o "kosmetyczne" zmiany. Ale może zamieszczę kod..

package iteratory;


import java.util.InputMismatchException;
import java.util.Scanner;  //importujemy klase scanner



public class Klasa {
static int i;
	static Scanner klawiatura=new Scanner(System.in);
	
	static Student[] tab=new Student[5]; //tworzymy tablice studentow
	
	static void wydruki() //tworzymy metode
	
    { // wypełnienie tablicy
	
    tab[0]= new Student("Kowalska",4.5); //dodanie studenta do tablicy
    tab[1]= new Student("Skulski",4);
    tab[2]= new Student("Puszek",3);
    tab[3]= new Student("Okruszek",3.5);
    tab[4]= new Student("Klapeuszek",5);
     
  
    System.out.println("Wpisz srednia ktora bedzie kryterium wyszukiwania");
  //  Scanner wczytywacz=new Scanner(System.in); //żeby można było zczytywać znaki z klawiatury
    
    double srednia=klawiatura.nextDouble();  //pobiera z klawiatury srednia
       if(srednia<=5){
    IteratorFiltrujacy it=new IteratorFiltrujacy(tab,srednia);  //tworzymy nowy iterator filtrujacy
    it.first();         //przeszukujemy tablice od poczatku 
   
    
    while (!it.isDone())    //dopoki nie przeszukano calej tablicy ..
    			{
        Student pobierz=(Student)it.current();     //wprawadzamy dodatkowa zmienna w ktorej przechowujemy dane aktualnie przeglądanego studenta
        System.out.println(pobierz.nazwisko+" "+pobierz.srednia); //drukuje studenta o wymaganej sredniej
        it.next(); //przechodzi do nastepnego studenta
    			}
       				}
       else
       {System.out.println("Wprowadzono niepoprawną liczbę");
    
       }
    
    	}
	public static void main(String[] args)  { //metoda wykonujaca
		int wybor;
				
			try{
		do{
			  
			 System.out.println("Czy chcesz spróbować ponownie? Jeśli tak wpisz 1 (tak) lub 2(nie)");
			    wybor=klawiatura.nextInt();

	} while(wybor!=1 && wybor !=2);
		if(wybor==1)
		  {
			wydruki();  //wykonuje sie wszystko wewnatrz metody wydruki ();
		    
		  }
		 
		}
		catch(InputMismatchException e){
		System.out.println("Nie wprowadzono poprawnego wyrażenia, może innym razem");
		
	}
		
}		
} 

cały szkopuł tkwi w tym, że program się wyłącza po tym jak wprowadzimy złą liczbę (większą od 5) lub gdy wpiszemy coś co nie jest liczbą. A chciałabym, żeby wyskoczyła w tych przypadkach opcja żeby można było zacząć sprawdzać od początku, a jak wpisze się 2 (tzn ze nie chcemy dalej sprawdzac) żeby program się wyłączył.
Problem niby podstawowy ale dla mnie nie do przejścia.
Za wszelką pomoc z góry dziękuję.

A gdyby trzeba było to na wszelki wypadek zamieszczam resztę paczki Iteratory..
http://www.mediafire.com/?ldw5gmywnmy

0

a o switchu kolega słyszał? Do while i ma śmigać

0

No fajnie, jak się używa switcha w praktyce dowiedziałam się dopiero wczoraj poza tym nie za bardzo wiem jak się do tego zabrac-dopiero się uczę javy i jeszcze nie za bardzo mi to wychodzi, szczerze mowiąc. Dlatego napisałam prośbę o pomoc.

1 użytkowników online, w tym zalogowanych: 0, gości: 1