Mi a hiba a kódban? (C#)
Ez a kód azt csinálja, hogy az adott képnek a nevét megnézve eldönti, hogy ász e vagy tizes értékű lap e vagy egyéb. Ugyebár a while ciklus addig megy míg azazonos változó true ra nem vált. És ez a for ciklusban van. Mivelígy az azonos változót vagy a while után vagy a while elöt false-ra kell váltani, hogy a while ciklus másodszorra is lefusson ezért, vagy az elejére vagy mőgé el is heyleztem, h azonos=false; De mind kettőnél azt írta, hogy tullépte a tömb méretét. "if (lapnev.Contains(lapokneve[x]))" erre a sorra írta ki a hibát. De a forciklusban kell false ra állítanom a változót, de mindenhogy hibt ír ha false ra álítom. Mitől van? Mit szúrtam el? Itt a kód:
for (int i = 2; i < 4; i++)
{
v = veletlentomb[i];
lapok[i].Location = new Point(hely, 300);
lapok[i].Image = elolap.Images[v];
lapnev = elolap.Images.Keys[v];
hely += 63;
azonos = false;
while (azonos == false)
{
if (lapnev.Contains(lapokneve[x]))
{
ertek = x;
if (x == 12 || x == 25 || x == 38 || x == 51)
{
aszdb++;
asz = true;
azonos = true;
}
else if (x == 8 || x == 9 || x == 10 || x == 11 || x == 21 || x == 22 || x == 23 || x == 24 || x == 34 || x == 35 || x == 36 || x == 37 || x == 47 || x == 48 || x == 49 || x == 50)
{
tizes = true;
azonos = true;
asznelkul += 10;
}
else
{
azonos = true;
asznelkul += ertek + 2;
}
}
x++;
}
}
Köszönöm előre.
aha látom már ++x, gondolom nulláról indul. Ez esetben a while-ba tegyél egy olyat, a kritikus sor elé
if(x > lapokneve.Length)
{
//Itt állítsd be úgy a változóidat, hogy nem találtad meg, amit kerestél
break;
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!