Egy if en belül lehet utasítani a gépet, hogy újból futtassa le az eldöntést? (c#)
Ha van egy if em zzonyos feltétellel, akkor a lehet olyan utasítást adni, hogy amikro igaz az if akkor meghívja megint ezt az eldöntést?
Pl:
if(10>9)
{
//itt meghívjuk ezt az idet megint(term. ez így k egy végtelen "ciklus" lenne :) )
}
Szal valami rekurzió félét lehet csinálni, egy if-fel?
hogyne. ezt hívják ciklusnak while, for
while(10>9)
{
}
ez így tényleg végtelen, a feltételbe érdemes olyat írni, ami igaz értéket is felvesz, hacsak nem akarsz végtelen ciklust írni :)
Szia Jessy én vagyok a aki az tegnap(v tegnap előtt nem tom már) írt oan szééép hosszú whileciklusos bizbaszt :). Az a gond a duplawhileciklussal, hogy az utolsó kártyát anyniszor veszi, ameddig el nem éri a bank a 17 et. Szal van egy 2+3 as lapja alapból az ugye öt húz rá 3 at és akkor e lesz az eredmény:
2+3+(3+3+3+3)=17 :S Nagyon nehezen fedeztem fel ezt a hibát. Ugye neki ienkor új lapot kéne kérnie. Szal 2+3+3+"valami új lap" ameddig el nem éri a 17-et. Sajnos a dupla while ciklus valamiért nem így működik.
Szerinted mi lehet a hiba?
bool bank_tullepte = false;
while(bank_tullepte==false)
{
if (bankpontja < 17)
{
v = veletlentomb[lap];
lapok[lap].Image = elolap.Images[1];
lapok[lap].Location = new Point(hely, 74);
lapnev = elolap.Images.Keys[1];
azonos = false;
x = 0;
lap++;
while (azonos == false)
{
if (lapnev.Contains(lapokneve[x]))
{
ertek = x;
if (x == 12 || x == 25 || x == 38 || x == 51)
{
if (bankpontja + 11 <= 21)
{
bankpontja += 11;
azonos = true;
bankpontjai.Text = "Bank pontja: " + bankpontja;
label1.Text += lapnev;
if (bankpontja >= 17 || bankpontja >= 21)
{
bank_tullepte = true;
}
}
else
{
bankpontja++;
azonos = true;
bankpontjai.Text = "Bank pontja: " + bankpontja;
label1.Text += lapnev;
if (bankpontja >= 17 || bankpontja >= 21)
{
bank_tullepte = 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)
{
bankpontja += 10;
azonos = true;
bankpontjai.Text = "Bank pontja: " + bankpontja;
label1.Text += lapnev;
if (bankpontja >= 17 || bankpontja >= 21)
{
bank_tullepte = true;
}
}
else
{
bankpontja += ertek + 2;
azonos = true;
bankpontjai.Text = "Bank pontja: " + bankpontja;
label1.Text += lapnev;
if (bankpontja >= 17 || bankpontja >= 21)
{
bank_tullepte = true;
}
}
}
x++;
}
}
else if (bankpontja >= 17||bankpontja>=21)
{
bank_tullepte = true;
}
}
A lap változót kell növelni, hogy új lapot tegyen le, de próbáltam már mindenhova írni, és nem csinált új lapot. Ezért, gondoltam, hogy a külső while t valahogy elhagyom. (eddigi ötleteim, hogy egy külön metódusba írom meg, de nem tudom, hogy az működik e.(mert ugye ott lehet rekurziót csinálni.)
úristen, ez mi? bocs hogy idepofátlankodok, ÉS IGEN NEM ÉRTEK SEMMIT HOZZÁ, de valaki elmondaná mi az az IF?
(nem, nem megyek el megtanulni:)
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, 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!