Seo (programlingva)

En programlingvoj, la seo, aŭ se-ordono estas malsimpla ordono ebliganta dum la rultempo kondiĉi plenumon de unu aŭ pluraj ordonoj (nomataj branĉo, alternativo) per valoro de bulea esprimo (per kondiĉo).

Unubranĉa seo redakti

En la Paskala pseŭdokodo tia seo havas la formon

 se bulea_esprimo tiam ordono;

Unue estas komputata la bulea_esprimo; se ĝi veras, la ordono estas plenumata; alie la stirfluo ĝin preterpasas.

En la malaltnivelaj lingvoj la sola formo de seo estas la unubranĉa, kaj ĝia komponanta ordono estas salta ordono.

Dubranĉa seo redakti

En la Paskala pseŭdokodo:

 se bulea_esprimo tiam ordono1 alie ordono2;

Unue estas komputata la bulea_esprimo; se ĝi veras, la ordono1 estas plenumata; alie la stirfluo ĝin preterpasas kaj la ordono2 estas plenumata. En ambaŭ okazoj, post la plenumo de la elektita branĉo la stirfluo transiras al la ordono kiu sekvas la seon.

Laŭbezone oni povas aranĝi kaskadon da seoj:

 se kondiĉo1 tiam ordono1alie se kondiĉo2 tiam ordono2
       ...
          alie se kondiĉon tiam ordononalie ordonon+1;

Ĉar en Paskalo kaj aliaj similaj lingvoj la seoj malhavas malimplican finilon (ian end iffi de kelkaj programlingvoj), tial tia kaskado povas esti ambigua (se iu el la seoj estas unubranĉa, oni povus diversmaniere rilatigi postajn alie-branĉojn). Per kroma regulo oni difinas, ke ĉiu tia alie alartenas al la plej proksima seo samnivela.

Plurkondiĉaj seoj redakti

La kaskadaj seoj sufiĉe oftas en la programoj, kaj en la lingvoj pli modernaj oni ĝeneraligis seojn por ebligi notacion pli mallongan kaj pli klaran. Ekz-e en Modula-2, esperantigita per la Paskalaj ŝlosilvortoj:

 se kondiĉo1 tiam ordono11; ordono12; ...
 alie se kondiĉo2 tiam ordono21; ordono22; ... 
 ...
 alie se kondiĉon tiam ordonon1; ordonon2; ... 
 alie ordono(n+1)1; ordono(n+1)2; ... 
 fino

En ĉi tia formo ĉiuj linioj, krom la unua kaj la lasta, povas foresti. La minimuma (unubranĉa) formo estas do

  se kondiĉo tiam ordono1; ordono2; ... fino 

Vidu ankaŭ redakti