C# While függvény segítség kéne?
Van egy programom, leegyszerűsítve:
van pár checkbox, pl
1. checkbox: x<10
2. checkbox: y<10
3. checkbox: z<10
...
Indításnál leellenőrzi mi van bejelölve egy switch-case-zel, és ez adná meg, meddig menjen a program.
pl: 1es 2es 3as bejelölve -> x<10 && y<10 && z<10.
Ezt hogy lehet a while-ba tenni (így: while(<ide>){ bla } )?
Így semmiképp sem lehet?
Ha switch-case-nél lenne a ciklus, nagyon sok lenne, és a ciklusban ugyanaz lenne(nem csinál mást). Vagy ami a ciklusban lenne, egy függvénybe kell tenni? De hogy lehet olyan függvényt, ami tudja használni a start függvény dolgait?
Remélem érthető voltam, nagyon érdekelne.
Kötözködni fogok kicsit: C#-ban a while az nem függvény, hanem statement, magyarul utasítás (asszem, vagy parancs, nemtom). Mindamellett csupa kisbetűvel írjuk, mert a C# érzékeny a kisbetű-nagybetű dologra, azaz case sensitive.
Kötözködés vége. :)
Matematikai logikában a "ha p, akkor q" egyenlő a "nem p vagy q"-val.
Azaz: p -> q === !p || q.
Előbbi matematikai logikai, utóbbi már C# operátoros jelöléssel.
Jelen esetben a "p" az a "checkBox{n}.Checked", a "q" az a "{x,y,z} < 10".
Tehát:
while
(
(!checkBox1.Checked || x < 10) &&
(!checkBox2.Checked || y < 10) &&
(!checkBox3.Checked || z < 10)
)
{
//bla
}
De amúgy C#-ban van ha, akkor operátor is: a "{feltétel} ? {ha igen} : {ha nem}", azzal is meg lehet oldani:
while
(
checkBox1.Checked ? x < 10 : true &&
checkBox2.Checked ? y < 10 : true &&
checkBox3.Checked ? z < 10 : true
)
{
//bla
}
Egyik esetben se felejtsd el a ciklusváltozóidat növelni a ciklusmagban! (Ötletem sincs, mire kellhet ez így...)
A start függvényes dolgot meg fejtsd ki, kérlek! A main függvényre gondolsz?
Függvények átadhatnak egymásnak paramétereket, vagy kommunikálhatnak közös változókon keresztül is.
Ez utóbbi csúnyább, de indokolt esetben használható.
Még valami: ha nem csekkolsz be egy checkboxot sem, akkor végtelen ciklusod lesz, erre is figyelj!
Legyen return, break vagy throw a cikluson belül!
Nem lehet, hogy ezeket inkább három külön ciklusba szeretted volna szervezni? Így valahogy:
if (checkbox1.Checked)
for (int x = 0; x < 10; x++){ /*bla1*/ }
if (checkbox2.Checked)
for (int y = 0; y < 10; y++){ /*bla2*/ }
if (checkbox3.Checked)
for (int z = 0; z < 10; z++){ /*bla3*/ }
Mi a célod ezzel a programmal? Ha elmondod, lehet, hogy többet is tudunk segíteni. ;o)
Köszi a választ, nagyon hülyén fogalmaztam, még én sem értem minden mondatom :D.
Amúgy nem vagyok annyira kezdő.
huh, most rájöttem mi a gond, és szégyellem magam, úgyhogy inkább nem magyarázom meg mit akartam, csak ha nagyon kíváncsi vagy rá :D
Ez:
while
(
checkBox1.Checked ? x < 10 : true && ...
)
azt jelenti, hogy ha be van jelölve akkor x<10 igy megy, ha nincs, akkor semmi/megy tovább?
Amúgy egy barátomnak csinálok egy játék mellé craft segítséget, beírja hogy miből mennyi cucca van, mit akar gyártani és kiszámolja a program hogy mennyi, melyik alapanyagot kell mivé átalakítani, ...
:-D
Minden úgy van, ahogy írtad.
Örülök, ha megy! Hajrá! ;o)
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!