none
For-Schleife RRS feed

  • 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
    }
    }

    Montag, 16. Dezember 2013 11:57

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




    • Bearbeitet brima Montag, 16. Dezember 2013 12:27
    • Als Antwort markiert CALVIN385 Montag, 16. Dezember 2013 12:33
    Montag, 16. Dezember 2013 12:11
  • 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
    Montag, 16. Dezember 2013 12:48

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




    • Bearbeitet brima Montag, 16. Dezember 2013 12:27
    • Als Antwort markiert CALVIN385 Montag, 16. Dezember 2013 12:33
    Montag, 16. Dezember 2013 12:11
  • Ok danke aber was müsste ich bei meinem code noch hinzufügen wenn ich nach den 12 durchläufen die $zahl ausgegeben haben möchte ?
    Montag, 16. Dezember 2013 12:32
  • 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
    Montag, 16. Dezember 2013 12:48
  • Super danke :-)
    Montag, 16. Dezember 2013 13:14