Ich beende gerade mein Programm, aber ich habe immer noch ein Problem, das ich nicht finden kann, eine Antwort zu finden. Ich habe bereits gestellte Fragen durchgesehen, aber in diesem Fall konnte ich nichts finden, was speziell meine Frage beantwortet. Dies ist ein Programm, mit dem der Benutzer eine Zeichenfolge eingeben kann und dann zählt, wie viele Vokale und Konsonanten usw. und danach der Benutzer eine Option erhält, das Programm zu wiederholen und eine neue Zeichenfolge einzugeben, wenn er y drückt, wird das Programm beendet Er/sie drückt n usw. Das einzige, was nicht funktioniert, ist, wenn der Benutzer y drückt, um das Programm zu wiederholen, dann gibt es aus, dass es 0 Vokale und Konsonanten usw. gibt. Ich weiß, dass es etwas am Anfang meines Codes ist wo ich zB int consonant_count = 0 habe, kann ich einfach nicht herausfinden, was ich bewegen soll und wohin ich es bewegen soll. Ps. Dies sollte nicht als Duplikat gekennzeichnet werden, da ich nicht wusste, dass nextLine das Problem war. Hier ist der Code:Java, Die Schleife beginnt nicht vom Anfang des Programms
import java.util.Scanner;
public class loop2
{
public static void main (String[] args)
{
Scanner inputReader = new Scanner (System.in);
char result='y';
do {
// ’Nytto’-kod:
int vowels_count = 0;
int consonents_count = 0;
int charachters_count= 0;
System.out.println("Skriv in en text");
String str = inputReader.nextLine();
String str2 = str.toLowerCase();
char[] chr = str2.toCharArray();
for(int i=0;i<chr.length;i++)
{
if(chr[i] == 'a' || chr[i]== 'e' || chr[i] == 'i' || chr[i] == 'o' || chr[i] == 'u')
vowels_count++;
else if(chr[i] == '-' || chr[i] == '!' || chr[i] == '?' || chr[i] == ',' || chr[i] == '.' || chr[i] == ':' || chr[i] == ';')
charachters_count++;
else
consonents_count++;
}
System.out.println("Antalet vokaler:"+vowels_count+ " "+"Antalet konsonanter:"+consonents_count+" "+"Antalet interpunktionstecken:"+charachters_count++);
// Kod f ̈or hantering av repetition
System.out.println ("För att upprepa: Skriv y");
System.out.println ("För att avsluta: Skriv n");
String repeat=inputReader.next();// H ̈amta anv ̈andarens svar.
result=repeat.charAt(0);
if(result=='y')
{
continue;
}
else if(result !='y' && result !='n')
{
System.out.println("Du får bara skriva y eller n, försök igen!");
result='y';
}
else
{
System.out.println ("Klart.");
inputReader.close();
}
}
while (result == 'y'); // Observera semikolon!
}
}
ich möchte auch hinzufügen, dass das gleiche passiert, wenn die Benutzereingabe gibt oder n, dann sollten sie eine Nachricht erhalten, dass sie es erneut versuchen sollen und dann sollte sich das Programm wiederholen. – mackanmorre
"aeiou" .indexOf (z) <0 besser für Vokal zu testen, idem für den zweiten Test – azro