Forum Delphi.cz

Delphi => Obecné => Téma založeno: Jirka 15-10-2021, 20:05:59

Název: Vyhodnocení podmínky
Přispěvatel: Jirka 15-10-2021, 20:05:59
Lze se spolehnout na "pravidlo" že když se vyhodnotí první podmínka jako nepravdivá nedojde již k testování druhé podmínky a výsledek bude vždy false ?

Kód: Delphi [Vybrat]
  1. Result:=(BaseDataSet.Active) AND (BaseDataSet.FieldByName('ID').AsInteger > 0)
Název: Re:Vyhodnocení podmínky
Přispěvatel: vandrovnik 15-10-2021, 20:12:41
Je na to direktiva:
https://docwiki.embarcadero.com/RADStudio/Sydney/en/Boolean_short-circuit_evaluation_(Delphi_compiler_directive) (https://docwiki.embarcadero.com/RADStudio/Sydney/en/Boolean_short-circuit_evaluation_(Delphi_compiler_directive))
Název: Re:Vyhodnocení podmínky
Přispěvatel: Radek Červinka 15-10-2021, 20:15:46
Project Option / Delphi Compiler / Compiling / Complete boolean evaluation
Název: Re:Vyhodnocení podmínky
Přispěvatel: Stanislav Hruška 15-10-2021, 20:18:28
Lze se spolehnout na "pravidlo" že když se vyhodnotí první podmínka jako nepravdivá nedojde již k testování druhé podmínky a výsledek bude vždy false ?

Kód: Delphi [Vybrat]
  1. Result:=(BaseDataSet.Active) AND (BaseDataSet.FieldByName('ID').AsInteger > 0)
Áno, dá. Je to priamo uvedené v základných materiáloch. Ovšem, pokiaľ si nevynútiš vyhodnotenie celého výrazu. Ako píšu predo mnou.
Název: Re:Vyhodnocení podmínky
Přispěvatel: Jirka 15-10-2021, 21:36:02
Dík.  Az jsem na to kouknul tak jsem si vzpomněl  že jsem už kdysi řešil ...

Mimochodem existují nějaké praktické důvody proč a kdy vyhodnocovat celý výraz ?
Název: Re:Vyhodnocení podmínky
Přispěvatel: pf1957 15-10-2021, 22:12:26
Mimochodem existují nějaké praktické důvody proč a kdy vyhodnocovat celý výraz ?
Ne moc casto - vetsinou to byva nejaky funkcionalni zapis se side-effecty, jejichz vyhodnoceni potrebujes zajistit bez ohledu na hodnotu vysledku.

IMHO zavrzenihodna zalezitost.
Název: Re:Vyhodnocení podmínky
Přispěvatel: Daniel_Andrascik 16-10-2021, 02:19:11
Mimochodem existují nějaké praktické důvody proč a kdy vyhodnocovat celý výraz ?

Presne tak ako hovori pf, radsej nikdy... Kym to permanentne prevadzkuje jeden clovek, tak mozno na to stale mysli. Ale casom ked to vyfuci z hlavy, alebo sa ku kodu dostanie niekto novy...  :o  nechcel by som...