@pablo scheine ich in dieser Schleife zu:Java Hinzufügen von Validierung zu meinem Code
do{
System.out.println("Voulez-vous saisir d'autres parties? (o/n)");
reponse = niveau.nextLine(); // extraction de la dernière ligne
if (reponse.toLowerCase().equals("o") == false || reponse.toUpperCase().equals("O") == false || reponse.toLowerCase().equals("n") == false || reponse.toUpperCase().equals("N") == false) {
System.out.println("R\u00C9PONSE INVALIDE ! VEUILLEZ ENTRER O OU N.");
} else {
validationReponse = true;
}
}while(!validationReponse);
Vielen Dank für Ihre Hilfe! Ich war in der Lage, die Validierung für Fragen mit numerischen Antworten zu bekommen, aber jetzt weiß ich nicht, wie man es für Fragen mit einer "y oder n" Antwort funktioniert. Ich habe versucht, diese aber es funktioniert nicht:
do{
System.out.println("Do you want to enter more game scores ? (y/n)");
reponse = niveau.nextLine();
if (reponse != o || reponse != n) {
System.out.println("Answer is invalid! Please enter y or n.");
} else {
validationReponse = true;
}
}while(!validationReponse);
Ich bin ein Anfänger. Ich nehme meine erste Java-Klasse. In meinem Code möchte ich eine Validierung für die Fragen hinzufügen: Bitte wählen Sie eine Spielstufe, Haben Sie das Spiel gewonnen und möchten Sie weitere Spiele eingeben, muss ich sicherstellen, dass die Eingabe gültig ist und wenn eine ungültige Antwort bereitgestellt wird, muss es zu der Frage zurückgehen. Ich bin mir nicht sicher, wie ich das machen soll. Keine erweiterte Codierung in Ihren Antworten bitte. Ich bin in einer Anfängerklasse. Es muss einfach sein.
String reponse="O";
while (reponse.toLowerCase().equals("o"))
{
System.out.println("Please choose your game level :");
System.out.println (" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.println (" For Beginner press 1");
System.out.println (" For Advanced press 2");
System.out.println (" For Expert press 3");
System.out.println (" ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++");
System.out.print (" My choice is : ");
Niveau = niveau.nextInt();
if(Niveau == 1){
int choix1 = 0;
nbParties_Facile++;
System.out.println("Have you won the game ?");
System.out.println(" Press 1 for YES ");
System.out.println(" Press 2 for NO ");
choix1 = niveau.nextInt();
niveau.nextLine();
if (choix1 == 1){
nbPartiesFaciles_Finies++;
tauxReussite_Facile = nbPartiesFaciles_Finies/nbParties_Facile * 100;
System.out.println("How many times did you take to complete the grid ?");
System.out.println(" Please enter the time in minutes");
String afficheur5 = niveau.nextLine();
tempsResolution_Facile = (nbPartiesFaciles_Finies * tempsResolution_Facile) + Integer.parseInt(afficheur5)/(nbPartiesFaciles_Finies);
}
else if (choix1 == 2){
tauxReussite_Facile = nbPartiesFaciles_Finies - 1/nbParties_Facile * 100;
}
else {
//default
}
}
if(Niveau == 2){
int choix2 = 0;
nbParties_Intermediaire++;
System.out.println("Have you won the game ?");
System.out.println(" Press 1 for YES ");
System.out.println(" Press 2 for NO ");
choix2 = niveau.nextInt();
niveau.nextLine();
if (choix2 == 1){
nbPartiesIntermediaires_Finies++;
tauxReussite_Intermediaire = nbPartiesIntermediaires_Finies/nbParties_Intermediaire * 100;
System.out.println("How many times did you take to complete the grid ?");
System.out.println(" Please enter the time in minutes");
String afficheur7 = niveau.nextLine();
tempsResolution_Intermediaire = (nbPartiesIntermediaires_Finies * tempsResolution_Intermediaire) + Integer.parseInt(afficheur7)/(nbPartiesIntermediaires_Finies);
}
else if (choix2 == 2){
tauxReussite_Intermediaire = nbPartiesIntermediaires_Finies - 1/nbParties_Intermediaire * 100;
}
else {
//default
}
}
if(Niveau == 3){
int choix3 = 0;
nbParties_Expert++;
System.out.println("Have you won the game ?");
System.out.println(" Press 1 for YES ");
System.out.println(" Press 2 for NO ");
choix3 = niveau.nextInt();
niveau.nextLine();
if (choix3 == 1){
nbPartiesExpertes_Finies++;
tauxReussite_Expert = nbPartiesExpertes_Finies/nbParties_Expert * 100;
System.out.println("How many times did you take to complete the grid ?");
System.out.println(" Please enter the time in minutes");
String afficheur9 = niveau.nextLine();
tempsResolution_Expert = (nbPartiesExpertes_Finies * tempsResolution_Expert) + Integer.parseInt(afficheur9)/(nbPartiesExpertes_Finies);
}
else if (choix3 == 2){
tauxReussite_Expert = nbPartiesExpertes_Finies - 1/nbParties_Expert * 100;
}
else {
//default
}
}
System.out.println("Do you want to enter more games ? (o/n)");
reponse = niveau.nextLine();
}
niveau.close();
'response.toLowerCase(). Equals (" o ")' Kann zur Vereinfachung und Berechtigung durch 'response.equalsIgnoreCase (" o ")' ersetzt werden. – jthort
Was macht das? Niveau.nextLine(); '? Ich glaube nicht, dass du das brauchst. –
Ich denke, du bist richtig füriveau.nextLine(); . Ich werde es entfernen. – Zyplexx