Benutzer mit den meisten Antworten
For-Schleife

Frage
-
Hey ich bin gerade an einer Aufgabe dran und hoffe jemand kann mir weiterhelfen.
Ich möchte gern das bei meinem Code wenn die Zahl richtig ist dass die Schleife beendet wird und das $Zahl am ende ausgegeben wird.
$zahl = Read-Host "Geben sie eine geheime Zahl ein" $zahl2 = Read-Host "Versuchen sie die geheime Zahl zu erraten" $zahl2 for ($i = 11; $i -gt 0; $i --) { if ($zahl -eq $zahl2) { "Diese Zahlen sind identisch, Glückwunsch" } else { if ($zahl -gt $zahl2) { "Die angegebene Zahl ist zu klein" } else { "Die angegebene Zahl ist zu groß" } Write-Host "Sie haben noch $i von 12 Versuchen" $zahl2 = Read-Host $zahl2 } }
Antworten
-
zum Beispiel so:
$GeheimZahl = Get-Random -InputObject (0..9) do { $Zahl = Read-Host "Geben Sie eine Ziffer zwischen 0 und 9 ein!" if ($Zahl -gt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu gross" } elseif ($Zahl -lt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu klein" } } until ($Zahl -eq $GeheimZahl) "Sie haben die Zahl $Zahl erraten!"
Also mit Get-Random wird eine Ziffer von 0-9 erzeugt, die ist dann zu erraten, wenn es z.B: was zwischen 1-100 sein soll einfach die () anpassen also (1..100)
Oder mit Anzahl Versuchen und beenden der Schleife wenn Zahl erraten ist:
$GeheimZahl = Get-Random -InputObject (0..9) $Versuche = 10 $i = 0 do { $i++ "Versuch $i/$Versuche" $Zahl = Read-Host "Geben Sie eine Ziffer zwischen 0 und 9 ein!" if ($Zahl -gt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu gross" } elseif ($Zahl -lt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu klein" } else { "Sie haben die Zahl $Zahl erraten!" break } } until ($i -eq $Versuche)
Beste Gruesse
brima
-
Ganz am Ende einfuegen
if ($i -eq 0) {"Die gesuchte Zahl war: $Zahl"}
So wird sie auch nur Ausgegeben wenn wirklich alles Versuche daneben gingen.
Aber dein Code ist nicht korrekt, dein IF gebilde past nicht so ganz, es wird deshalb z.B: nach korrekter Eingabe fuer die Restversuche jeweils wieder die Glueckwunschzeile ausgeben ...
Einfach unter der Glueckwunschzeile ein Break einfuegen und schon wird die Schleife beendet, wenn die Zahl erarten wurde.
- Als Antwort markiert CALVIN385 Montag, 16. Dezember 2013 13:14
Alle Antworten
-
zum Beispiel so:
$GeheimZahl = Get-Random -InputObject (0..9) do { $Zahl = Read-Host "Geben Sie eine Ziffer zwischen 0 und 9 ein!" if ($Zahl -gt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu gross" } elseif ($Zahl -lt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu klein" } } until ($Zahl -eq $GeheimZahl) "Sie haben die Zahl $Zahl erraten!"
Also mit Get-Random wird eine Ziffer von 0-9 erzeugt, die ist dann zu erraten, wenn es z.B: was zwischen 1-100 sein soll einfach die () anpassen also (1..100)
Oder mit Anzahl Versuchen und beenden der Schleife wenn Zahl erraten ist:
$GeheimZahl = Get-Random -InputObject (0..9) $Versuche = 10 $i = 0 do { $i++ "Versuch $i/$Versuche" $Zahl = Read-Host "Geben Sie eine Ziffer zwischen 0 und 9 ein!" if ($Zahl -gt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu gross" } elseif ($Zahl -lt $GeheimZahl) { "Die angegebene Zahl $Zahl ist zu klein" } else { "Sie haben die Zahl $Zahl erraten!" break } } until ($i -eq $Versuche)
Beste Gruesse
brima
-
Ganz am Ende einfuegen
if ($i -eq 0) {"Die gesuchte Zahl war: $Zahl"}
So wird sie auch nur Ausgegeben wenn wirklich alles Versuche daneben gingen.
Aber dein Code ist nicht korrekt, dein IF gebilde past nicht so ganz, es wird deshalb z.B: nach korrekter Eingabe fuer die Restversuche jeweils wieder die Glueckwunschzeile ausgeben ...
Einfach unter der Glueckwunschzeile ein Break einfuegen und schon wird die Schleife beendet, wenn die Zahl erarten wurde.
- Als Antwort markiert CALVIN385 Montag, 16. Dezember 2013 13:14