Kezdőoldal » Számítástechnika » Programozás » A c# mért nem enged a swich...

A c# mért nem enged a swich szerkezetnél break hiányában átcsúszni egyik állapotból a másikba?

Figyelt kérdés
2020. máj. 14. 14:50
 1/6 anonim ***** válasza:
85%

Enged, ha az elsőbe nem írsz semmit.

{

case 1:

case 2: //itt csinálsz valamit, ami 1-nél és 2-nél is végrehajtódik

break;

case 3:

break;

}

2020. máj. 14. 15:10
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
100%

Így döntött a nyelv megalkotója.


Az alapprobléma a hiányzó break;-el az, hogy nem lehet róla megmondani, hogy szándékosan lett kihagyva vagy csak véletlenül.


Ha feltételezzük, hogy szándékosan és továbbengedjük, akkor lehet, hogy hibát okoz.


Ha feltételezzük, hogy véletlenül és megállítjuk, hát... akkor 50-50%, hogy hibát okoz, tehát ez sem jobb.


Akkor mit tételezzünk fel? - Ha megfigyeled, akkor üres case és hiányzó break; esetén viszont továbbmegy a vezérlés. - A feltételezés az volt, hogy ha valaki üresen hagyja a case-t és break;-et sem tesz ki, akkor az biztosan szándékosan van úgy, mert ez az üres case értelme, hogy továbbmenjen a vezérlés. Hiszen mi másért hagynál ott üresen egy case-t?

2020. máj. 14. 15:12
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
100%

A C# ilyen, de úgy vettem észre, több más dologban is szigorúbb.


Egyébként szerintem tök veszélyes, ha egy nyelv engedi a break lehagyását.

Véletlenül lehagyja az ember, aztán hihetetlenül hosszú hibakeresés kezdődik.

2020. máj. 14. 16:20
Hasznos számodra ez a válasz?
 4/6 A kérdező kommentje:
Ja tehát akkor azért van, hogy véletlenül kihagyott break esetén se működjön hibásan a program. thx
2020. máj. 14. 17:40
 5/6 anonim ***** válasza:
100%

Mert ez nem C++. ;)

Én szeretem a C-t és C++-t, nagyon sok trükköt be lehet vetni ezen nyelveknél, amik apróságok, de pl. beágyazott rendszereknél, vagy rendszerközeli szoftvereknél sokat jelenthet akár az is, ha egy-egy automatikusan végrehajtott művelettel kevesebb van.

De ez elég komoly hibákat is okozhat, és azért elég ritka, amikor az a kívánt működés, hogy egyszerre több switch-ág hajtódjon végre.

Igazából a legtöbb nyelvben nem lehet azt megoldani, mint C++-ban. A többirányú elágazásnak mindig csak egy ága hajtódhat végre. Így nézve nem a C# a különc, hanem pont a C++. ;)

2020. máj. 14. 19:27
Hasznos számodra ez a válasz?
 6/6 anonim válasza:
63%
De hát, az elsőnek van igaza, működik így is. Kipróbáltam VS-ben
2020. jún. 5. 15:53
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!