Kezdőoldal » Számítástechnika » Programozás » Mikor melyik szerkezetet kell...

Mikor melyik szerkezetet kell használni?

Figyelt kérdés

Switch VS if


Illetve jól látom, hogy switch csak a C# nyelvben van?


2023. ápr. 11. 09:25
1 2
 1/14 anonim ***** válasza:
23%

Az "if" egy vagy több logikai feltétel (-ek sorozata), a "switch" pedig egyetlen értékre kiterjedő vizsgálat. Nincs olyan, hogy "kell", mindig kontextusfüggő, hogy épp melyiket szeretnéd használni, de általában azt, amelyikkel könnyebben ki tudod fejezni, hogy mi a célod.

Ha például egyetlen feltétel fennállását szeretnéd vizsgálni, tehát egy adott értékkészletből egyetlen érték egyezését vizsgálod, akkor nagy valószínűséggel "if"-et fogsz használni, míg ha egy adott értékkészletből több érték vizsgálatát óhajtod, akkor valószínűleg "switch"-et fogsz használni.



"Illetve jól látom, hogy switch csak a C# nyelvben van?"


Nem, kb. az összes létező, általános célú, OOP-t és/vagy procedurális programozást támogató nyelvben van.

2023. ápr. 11. 09:43
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:
5%
Még annyit, hogy egyes programozási nyelvekben a switch nem utasítás, hanem kifejezés.
2023. ápr. 11. 09:44
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:
5%
A switch gyorsabb tud lenni, ha nagyon sok darabból áll az összehasonlítás , de az olvashatósági szempontok is szerepet játszhatnak.
2023. ápr. 11. 09:56
Hasznos számodra ez a válasz?
 4/14 A kérdező kommentje:
Köszönöm a segítséget.
2023. ápr. 11. 10:11
 5/14 anonim ***** válasza:
0%

"A switch gyorsabb tud lenni,"


Dehogy tud. Hogy is tudna?

2023. ápr. 11. 15:44
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:
49%

Wheels: A switch egy vezérlési szerkezet, éppen olyan, mint az "if/then/else". Kifejezés meg aztán, tényleg sose volt.


Ha kigeneráltatod egy switch assembly kódját, tapasztalni fogod, hogy éppen annyi lesz, mintha "if"-ekből építenéd fel ugyanazt.


Kizárólag a programozói oldalt segítő eszköz a switch/case. A használatával futásidő szempontjából semmiféle előny nem keletkezik.

2023. ápr. 11. 16:10
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:
78%

#6-os és ez már nem aktuális ? Nem teszteltem és szerintem programnyelv függő is lehet..

[link]


"If a switch contains more than five items, it's implemented using a lookup table or a hash list. This means that all items get the same access time, compared to a list of if:s where the last item takes much more time to reach as it has to evaluate every previous condition first."


De az is igaz, hogy olyan teszt is van, ami a switch-t hozza ki lassabbra.

2023. ápr. 11. 16:18
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:
9%

A kérdező felé:

Switch-et akkor érdemes használni, ha a valamivel összehasonlítani kivánt adat esetében a "valami" (case) kettőnél többet számlál. Pl.:


adat: today

case: "hétfő", "kedd", "szerda", stb.

2023. ápr. 11. 16:20
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
19%
Ilyen finomságokat tartalmazhat egy-egy fordító, de ebből nem érdemes általánosítani. Ráadásul, az esetszámtól és az összehasonlítás alapjától (type) is függ, hogy a switch gyorsabb lesz-e.
2023. ápr. 11. 16:23
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:
0%

Na, elolvastam az ezzel kapcsolatos diskurzust. Ez sztem egy félig gondolt gondolat. Hash ide vagy oda, teoretice, nincs különbség.


De azért jó élmény volt. Köszi.

A végén még rászokok a stackoverflow olvasgatására.

2023. ápr. 11. 16:44
Hasznos számodra ez a válasz?
1 2

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

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!