Autor Téma: Vyhodnocení podmínky  (Přečteno 356 krát)

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 436
  • Karma: 9
    • Verze Delphi: XE2
Vyhodnocení podmínky
« kdy: 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)

Online vandrovnik

  • Guru
  • *****
  • Příspěvků: 1274
  • Karma: 51
    • Verze Delphi: 10.3

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 2982
  • Karma: 108
    • Verze Delphi: D2007, DXE + 2 poslední
    • O Delphi v češtině
Re:Vyhodnocení podmínky
« Odpověď #2 kdy: 15-10-2021, 20:15:46 »
Project Option / Delphi Compiler / Compiling / Complete boolean evaluation
Embarcadero MVP - Czech republic

Offline Stanislav Hruška

  • Padawan
  • ******
  • Příspěvků: 6045
  • Karma: 44
    • Verze Delphi: W10 + D11
Re:Vyhodnocení podmínky
« Odpověď #3 kdy: 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.
W10 64b, Delphi 10.4, FireBird 3.05
Expert na kladenie nejasne formulovaných otázok.

Offline Jirka

  • Hrdina
  • ****
  • Příspěvků: 436
  • Karma: 9
    • Verze Delphi: XE2
Re:Vyhodnocení podmínky
« Odpověď #4 kdy: 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 ?

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 3292
  • Karma: 139
    • Verze Delphi: D2007, XE3, DX10
Re:Vyhodnocení podmínky
« Odpověď #5 kdy: 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.

Offline Daniel_Andrascik

  • Guru
  • *****
  • Příspěvků: 502
  • Karma: 20
    • Verze Delphi: D2007, D10.4
Re:Vyhodnocení podmínky
« Odpověď #6 kdy: 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...