Kezdőoldal » Számítástechnika » Programozás » C# While függvény segítség kéne?

C# While függvény segítség kéne?

Figyelt kérdés

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.



2012. júl. 24. 10:53
 1/7 anonim ***** válasza:

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ó.

2012. júl. 25. 08:41
Hasznos számodra ez a válasz?
 2/7 anonim ***** válasza:

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)

2012. júl. 25. 08:51
Hasznos számodra ez a válasz?
 3/7 A kérdező kommentje:

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

2012. júl. 25. 09:15
 4/7 A kérdező kommentje:

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?

2012. júl. 25. 09:20
 5/7 A kérdező kommentje:

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

2012. júl. 25. 09:25
 6/7 A kérdező kommentje:
ezzel működik, köszi
2012. júl. 25. 10:47
 7/7 anonim ***** válasza:

Minden úgy van, ahogy írtad.

Örülök, ha megy! Hajrá! ;o)

2012. júl. 25. 12:16
Hasznos számodra ez a válasz?

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

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!