Bonjour voilà étant un amateur de programmation sa fait un moment que je code afin de m'améliorer dans se domaine si intéressant et depuis ma passion pour La programmation s'affirme de jours en jours au point qu'il m'arrive de resté plusieurs heures sur un problème de réflexion et de refuser de quitté cette problématique tant que j'n'ai pas résolu ce qui me subjugue
C'est le cas de le dire justement , ce qui m'amène est un problème de code au quel je suis confronté depuis un moment et au quel je ne trouve pas de solutions c'est pour cette raison que je voulais vous demandé si vous pouviez jetez un coup d’œil et me dire ce qui posé problème
le code est le suivant :

public class CalculMathématique{
public static java.util.Scanner scanner = new java.util.Scanner(System.in);
public static void main(String[] args) {

System.out.println("Bienvenue Au programme de divers Operation : ");
System.out.println(" Entrer 1 pour faire une Addition ");
System.out.println(" Entrer 2 pour faire une Soustraction ");
System.out.println(" Entrer 3 pour faire une Multiplication ");
System.out.println(" Entrer 4 pour faire une divison ");
int choixEleve = scanner.nextInt();

do{
if(choixEleve != 1 || choixEleve != 2 || choixEleve != 3 || choixEleve != 4){
choixEleve = scanner.nextInt();
}
switch(choixEleve){
case 1 : faireUneAddition();
break;
case 2 : faireUneSoustraction();
break;
case 3 : faireUneMultiplication();
break;
case 4 : faireUneDivision();
break;
}
}while(choixEleve!= 1 || choixEleve != 2 || choixEleve!= 3 || choixEleve != 4);
}
public static void faireUneMultiplication(){
int premierNombre, secondNombre, reponseCorrecte, reponseEleve;
System.out.println ("Voici une multiplication :");
premierNombre = unEntierAuHasardEntre (0, 10);
secondNombre = unEntierAuHasardEntre (0, 10);
reponseCorrecte = premierNombre * secondNombre;
System.out.print("Calcule: " + premierNombre + " x " + secondNombre + " = ");
reponseEleve = scanner.nextInt();
if (reponseEleve == reponseCorrecte) {
System.out.println("Très bien");
}
else{
System.out.println("Non, c'était : " + reponseCorrecte);
}
}

public static void faireUneAddition(){
int premierNombre, secondNombre, reponseEleve , reponseCorrecte;

System.out.println(" Voici une Addition : ");
premierNombre = unEntierAuHasardEntre(0 , 10);
secondNombre = unEntierAuHasardEntre(0 , 10 );
reponseCorrecte = premierNombre + secondNombre;
System.out.println("Calculer : " + premierNombre + " + " + secondNombre + " = ");
reponseEleve = scanner.nextInt();
if(reponseCorrecte == reponseEleve){
System.out.println(" Très bien ");
}
else{
System.out.println(" La réponse était : " + reponseCorrecte);
}
}

public static void faireUneSoustraction(){
int premierNombre , secondNombre,reponseCorrecte , reponseEleve;
System.out.println(" Voici une Soustraction : ");
premierNombre = unEntierAuHasardEntre( 0, 10);
secondNombre = unEntierAuHasardEntre( 0, 10);
reponseCorrecte = premierNombre - secondNombre;
System.out.println("Calculer : " + premierNombre + " - " + secondNombre + " = ");
reponseEleve = scanner.nextInt();
if(reponseCorrecte == reponseEleve){
System.out.println("Très Bien : ");
}
else{
System.out.println("Non la réponse était : " + reponseCorrecte);
}
}

public static void faireUneDivision(){
int premierNombre , secondNombre , reponseEleve , reponseCorrecte;
System.out.println(" Voici une Division : " );
premierNombre = unEntierAuHasardEntre(0 , 10);
secondNombre = unEntierAuHasardEntre(0 , 10);
reponseCorrecte = premierNombre / secondNombre;
System.out.println(" Calculez : " + premierNombre + " / " + secondNombre + " = ");
reponseEleve = scanner.nextInt();
if(reponseCorrecte == reponseEleve){
System.out.println(" Très Bien ! ");

}
else{
System.out.println(" La reponse était : " + reponseCorrecte);
}
}

public static int unEntierAuHasardEntre (int valeurMinimale, int valeurMaximale){
double nombreReel;
int resultat;

nombreReel = Math.random();
resultat = (int) (nombreReel * (valeurMaximale - valeurMinimale + 1)) + valeurMinimale;
return resultat;
}
}

Le gros du problème se trouve dans ma boucle do while :/ , ce que je veux savoir faire c'est que si l'utilisateur entre autre chose que l'un des choix proposé (dans mon switch case ), le programme l'en empêche jusqu'a ce qu'il entre l'un des choix proposé et que une fois qu'il a entré l'un des choix proposé que le programme continue et que une fois qu'il a effectuer le calcul et que la réponse a était donné qu'il s’arrête.