[C] Jak zjednodušit 2 zřetězěné podmínky?

Místo pro dotazy a rady ohledně programovacích jazyků (C++, C#, PHP, ASP, Javascript, VBS..) a tvorby webových stránek

Moderátor: Mods_senior

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

[C] Jak zjednodušit 2 zřetězěné podmínky?

Příspěvekod CZechBoY » 23 dub 2013 00:40

Zdravim,
mám podmínku dejme tomu

Kód: Vybrat vše

(a < 3 && cislo == 0) || (a >= 3 && cislo > 1000)

a chtěl bych se zeptat jestli by to nešlo nějak zjednodušit, aby tam podmínka a < 3 byla jen jednou.

v Assembleru to jde, možná nějakou optimalizací překladače to udělá to stejný jako v Assembleru kdybych použil

Kód: Vybrat vše

if(a > 3) {
  if(cislo == 0) {/* cosi */}
} else {
  if(cislo > 1000) {/*cosi (stejny kod jako vyse) */}
}


nápady, tipy klidně pište, dík
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW

Reklama
Uživatelský avatar
faraon
Master Level 8.5
Master Level 8.5
Příspěvky: 7397
Registrován: prosinec 10
Pohlaví: Muž
Stav:
Offline

Re: [C] Jak zjednodušit 2 zřetězěné podmínky?

Příspěvekod faraon » 23 dub 2013 19:27

No, nevím jestli by se to smělo nazývat zjednodušení, spíš bych to pojmenoval pár termíny nepublikovatelnými před dvaadvacátou hodinou, ale udělat to jde:

Kód: Vybrat vše

if (a<3?!cislo:cislo>1000)


Jedno slušné slovo pro to vlastně existuje: obfuskace :lol:

Další možnost je použít GOTO, ale tím z toho Céčka uděláš zase jen ten nestrukturovaný assembler...
"Král Lávra má dlouhé oslí uši, král je ušatec!

(pravil K. H. Borovský o cenzuře internetu)

Uživatelský avatar
CZechBoY
Master Level 9.5
Master Level 9.5
Příspěvky: 8813
Registrován: srpen 08
Bydliště: Brno
Pohlaví: Muž
Stav:
Offline
Kontakt:

Re: [C] Jak zjednodušit 2 zřetězěné podmínky?

Příspěvekod CZechBoY » 23 dub 2013 19:41

ternár mě nenapadl a nevypadá ani jako dobrý řešení :D

včera jsem koukal na CodeProject, kde tam řešili zjednodušení podmínky pro nějaký obdélník, u toho jsem zjistil že to asi nepude pro můj příklad
PHP, Nette, MySQL, C#, TypeScript, Python
IntelliJ Idea, Docker, Opera browser, Linux Mint
iPhone XS
Raspberry PI 3 (KODI, Raspbian)
XBox One S, PS 4, nVidia GeForce NOW


Zpět na “Programování a tvorba webu”

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host