C# Arrayproblem

hiho
habn für die schule ne aufgabe gekriegt: lotto
code ist (is nur ausschnitt aus dem prog):

Random r = new Random();
int[] lotto = new int[6];

string eingabe;
int anzahl, anzahl2;

do
{
Console.WriteLine(„Was wollen Sie machen(1…Quicktipps generieren lassen, 2…Tipps abgeben, 3…nur Ziehung anzeigen 0…aussteigen)“);
eingabe = Console.ReadLine();

//Lottoziehung
for (int i = 0; i

Hallo Herr Hoffmann,

bitte schildern Sie etwas detaillierter Ihr Problem.
Geht es um eine nicht befolgte break-Anweisung, wie Sie im letzten Satz schreiben, oder aber um ein Problem mit Ihren Arrays wie Sie im Titel schreiben.

Mit freundlichen Grüßen,
Andreas Scholz

hiho

habn für die schule ne aufgabe gekriegt: lotto

code ist (is nur ausschnitt aus dem prog):

[…]

break 1 funzt nicht (alles andere würd ich selbst schaffn)

Hallo,

also um ehrlich zu sein, kann ich mit der Fehlerbeschreibung „break 1 funzt nicht“ nicht sonderlich was anfangen. Was genau funktioniert nicht?

Sei gegruesst,

das kann an dem continue liegen.
versuche einmal statt das break zu verwenden die „eingabe“ auf 4 [eingabe=4;] zu setzen und damit in einem anderen leeren zweig zu landen.
Goto waere auch noch eine alternative.

gruss

ric

Hi Fabian,

tritt das Problem beim Übersetzen oder während der Laufzeit auf?
Was sagt der Compiler bzw. wie verhält sich das Programm?

Gruß,
Jan

Während der Laufzeit.
wenn ich 1 Eingebe und dann die anzahl einstelle wie viele Quicktipps ich generieren lassen will und ich gebe eine Zahl ein hängt er sich auf und meldet in der Zeile 60 (if (tipp[e,i] == zufallszahl)) IndexOutOfRangeException wurde nicht behandelt. und Der Index war außerhalb des Arraybereichs.

Hallo Fabian,

sorry für die lange Wartezeit, vieleicht hast du den Fehler auch schon selbst gefunden.

Falls nicht, im Anschnitt Quicktipp hast du geschrieben:

for (int e = 0; e

Hallo Fabian,

der Fehler liegt in der Begrenzung der Zählschleife über e.
Du gibst eine „1“ ein. Das hiesse das Programm generiert ein Array der Größe 1 ,6.

int[,] tipp = new int[anzahl, 6];

Dann iterierst Du von 0 bis anzahl+1 (also bis Index 1). Das Array endet aber bereits nach Index 0 (Indizes laufen von 0 bis Arraylänge-1).

for (int e = 0; e

Hallo!

Wie ist denn jetzt genau deine Frage? Break 1 funzt nicht könnte evtl. daran liegen, dass du einen Block im Break brauchst?

case „1“:
{
// Zeile 1
// Zeile 2
}
break;
case „2“:
{
// Zeile 1
// Zeile 2
}
break;