Efterfråga namn igen - loop
Jag ska skapa en loop där man säkerställer att användaren har matat in ett korrekt namn och om namnet är fel så ska ett felmeddelande skickas ut. Har frågat om hjälp ang vad som är fel av mina lärare men får noll respons så frågar ut här. Först och främst tror jag nog att do-while är fel sätt att använda loopen på men får den inte att fungera på något annat sätt heller! Nu när jag skrivit ut String name; ovan loopen så fungerar heller inte .trim(); på rätt sätt.
Innan jag försökte loopa stod det alltså: String name = keyboard.readText("Name").trim();
Tips på vad jag kan göra för att efterfråga namnet igen??
Nog enklare att göra en while-loop med if-satser som leder till ett break;-villkor som tar sig ur loopen. Du vill ju exempelvis bara ge felmeddelandet om det faktiskt är fel i input. Som det är nu så skriver du alltid ut felmeddelandet oavsett om loopen bryts eller ej.
Du får redogöra mer för vad problemet är. Att du får runtime errors, compile errors, eller bara oavsedd output.
Koden som du postat går inte ens att köra självständigt (och går därmed inte att felsöka) då du måste definierat bland annat keyboard utanför rutan så går inte att veta om finns fler fel utanför kod-snippet.
Tänker mig en while-loop i det här formatet som en första lösning:
not_done = True
while (not_done):
ask user for name
check if name is valid
if valid:
change not_done to False
if not valid:
Write error message (and rerun loop as not_done is still True)
visserligen var det några år sen jag programmerade i Java men är det inte lättare att använda ett Scanner objekt för att läsa fr tangentbordet?
String name;
Scanner input = new Scanner(System.in);
do
{
System.out.print("Namn:");
name = input.nextLine();
if (name.IsEmpty())
{
System.out.println("Fel sträng");
}
}
while (name.IsEmpty());
Tack jag lyckades lösa problemet!