C#: Wie kann ich die Eingabe eingrenzen?

3 Antworten

while(true){
    Console.WriteLine("Zahl eingeben: ");
    int userZahl = Convert.ToInt32(Console.ReadLine());
    if(userZahl>0 && userZahl<=10){
        break;
    }
    else{
        Console.WriteLine("Bitte geben Sie nur Zahlen von 1-10 an");
    }
}
Woher ich das weiß:Studium / Ausbildung – Informatikstudent
ichhassecsharp 
Fragesteller
 25.08.2021, 22:10

bruder das geht nicht

0
ichhassecsharp 
Fragesteller
 25.08.2021, 22:18
@Xenortus

ja aber wie mache ich, dass es sich immer wiederholt wenn die zahl < 10 ist

0
whgoffline  25.08.2021, 22:18
@Xenortus

Das stimmt natürlich! Da hatte sich wohl etwas Python syntax eingeschlichen.

1
Xenortus  25.08.2021, 22:21
@ichhassecsharp

Achso, wir dachten dann soll es beendet sein, dann nimmst du

break;

weg und setzt dafür das ein:

Console.WriteLine("Die Eingabe war korrekt");

1
Xenortus  25.08.2021, 22:41
@ichhassecsharp

Dank nicht mir, dank whgoffline ^^

Er hat den Code hier rein gesetzt, ich hätte dich weiter bei meinem Beispiel schmoren lassen ^^

0

Pseudocode

integer min = 1;
integer max = 10 ; 
integer zufall = zufallszahl(min bis max) ;
integer eingabe = 0 ;
while (zufall != eingabe ) {
   eingabe = input()
   if (eingabe > zufall ) { /* zu groß */ }
   if (eingabe < zufall ) { /* zu klein */ }
   if (eingabe < min && eingabe > max ) { /* gesuchter wert liegt im bereich von  min bis max  */ }
}
/* ausgabe hurra gefunden */

Ich würde ne While Schleife machen, die Zahl abfragen und mit if kontrollieren ob sie größer oder kleiner ist.

Falls nicht, Schleife beenden.

Ansonsten Ausgabe das die Zahl falsch war und dann geht die While wieder von vorne los.

Das wäre nicht mal C# relevant, da du das in jeder Sprache so schreiben würdest.