Kezdőoldal » Számítástechnika » Programozás » Switch-case esetén googleben...

Switch-case esetén googleben rákeresve a feltétel helyére kifejezést lehet írni, tudnátok olyan példát mondani, amikor ez a kifejezés nem egy változónév?

Figyelt kérdés

2019. nov. 25. 19:58
1 2
 1/11 A kérdező kommentje:
Bár gondolom lehet függvényhívás is, vagy pl egy randomszámgenerálás, na majd mindjárt kipróbálom.
2019. nov. 25. 20:01
 2/11 anonim ***** válasza:
41%

Érdemes lenne megjelölni a programozási nyelvet is (én most C++-t fogok feltételezni). Ha arra gondolsz, hogy mit írhatsz a case után, akkor nem mindent. Az ottani kifejezés értékét ugyanis tudnod kell fordítási időben. Tehát lehet függvény, de csak akkor, ha az eredménye konstans időben kiszámolható (ezt ki lehet kényszeríteni pl. constexpr használatával).


Ugyanez igaz C#-ra is.

2019. nov. 25. 20:59
Hasznos számodra ez a válasz?
 3/11 anonim ***** válasza:
41%

Például

switch (myString[0])

2019. nov. 25. 21:20
Hasznos számodra ez a válasz?
 4/11 anonim ***** válasza:

Vagy

switch (a + b)

2019. nov. 25. 21:21
Hasznos számodra ez a válasz?
 5/11 Alex Fly ***** válasza:
54%
Tudomásom szerint (ami nem túl sok) a lényeg, hogy az értéke egyértelmű int (vagy bool) legyen -legalábbis C# esetén.
2019. nov. 25. 21:59
Hasznos számodra ez a válasz?
 6/11 anonim ***** válasza:
65%

"Tudomásom szerint (ami nem túl sok) a lényeg, hogy az értéke egyértelmű int (vagy bool) legyen -legalábbis C# esetén."

Ennek se füle, se farka.

2019. nov. 25. 22:30
Hasznos számodra ez a válasz?
 7/11 Alex Fly ***** válasza:
0%
@6: akkor próbáld ki a switchet egy double vagy string értékre...
2019. nov. 25. 23:03
Hasznos számodra ez a válasz?
 8/11 anonim ***** válasza:

Itt a "kifejezés" fogalma a lényeg. Kifejezés minden, ami kiértékelés után egy konkrét értékkel és típussal rendelkezik, kb. mint a változók. Lehet konstans, változónév, függvényhívás, stb., és ezek operátorokkal való különféle kombinációja.

A feltétel általában egy olyan kifejezés, ami kiértékelés után egyértelmű logikai értékként értelmezhető. Ez nyelvtől függően lehet int, char, bool, valamilyen pointer, stb. (C-ben általában az egész típusok.)


Logikai kifejezések pl.: (int a; char b; char *c;)

a

a==1

a==1 || a>10

a%2

b

c[4]

c[12]>=b

c[4]+c[12]>=b-1

(a==1 || a>10) && c && (c[12]>=b) && func(param)

stb...

2019. nov. 26. 01:30
Hasznos számodra ez a válasz?
 9/11 anonim ***** válasza:
65%
#5: Kipróbáltam, működik.
2019. nov. 26. 09:47
Hasznos számodra ez a válasz?
 10/11 anonim ***** válasza:

C/C++-ban a nem egész típus (pl. double) feltételként való használata nem szabványos, fordítófüggő, kerülendő. A string, mint konténer adhat vissza "empty" értéket, tehát működhet, de ennek az adott fordító leírásában érdemes utánanézni.

A lebegőpontos alak eleve nem egy egzakt érték, inkább egy közelítés, pl. egyenlőség vizsgálatakor is okozhat meglepetéseket. A 0.0-nak sem csak egyféle alakja van, és ott van még a NaN és inf érték.

2019. nov. 27. 01:37
Hasznos számodra ez a válasz?
1 2

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!