Кіріспе

Басқару ағыны мәлімдемесі, кодты белгілі бір шарттарға сәйкес орындайды.

Компьютер ғылымында шартты операторлар (яғни шартты мәлімдемелер, шартты өрнектер және шартты конструкциялар) – бұл шешімдерді қабылдау үшін бағдарламалау тілінің командалары. Нақтырақ айтқанда, шартты операторлар бағдарламашы анықтаған логикалық шарттың мәні дұрыс немесе жалған болып бағаланғандығына байланысты әртүрлі есептеулерді немесе әрекеттерді орындайды. Басқару ағыны тұрғысынан, шешім әрқашан белгілі бір шартқа негізделген басқару ағынын таңдау арқылы жүзеге асырылады (тарау болжамын қоспағанда). Динамикалық диспетчеризация әдетте шартты конструкция ретінде жіктелмесе де, орындау кезінде баламаларды таңдаудың тағы бір тәсілі болып табылады. Шартты мәлімдемелер – бұл бағдарламадағы жағдайға қарай мінез-құлқы анықталатын бақылау нүктелері.

Терминология

Императивті бағдарламалау тілдерінде әдетте "шартты оператор" термині қолданылады, ал функционалдық бағдарламалауда "шартты өрнек" немесе "шартты құрылым" терминдері көбірек қолданылады, себебі бұл терминдердің бәрі ерекше мағынаға ие.

Тарих және дамуы

Алғашқы бағдарламалау тілдерінде, әсіресе 1980-ші жылдардағы үй компьютерлеріндегі BASIC диалектілерінде, if–then операторы тек GOTO операторларын (бір тармаққа бағыну нұсқаулығымен тең) қамтуы мүмкін еді. Бұл бағдарламалаудың түсінілуі қиын "спагетти" стиліне әкелді, ал осы стильде жазылған бағдарламалар "спагетти" коды деп аталды. Соның салдарынан, if-тармақтарында (іс жүзінде) кез келген операторларды оператор блоктарына қоюға мүмкіндік беретін құрылымдық бағдарламалау танымал бола бастады, тіпті көптеген BASIC бағдарламалау орталарында да стандартқа айналды. Мұндай механизмдер мен принциптер көне, бірақ одан да жетілген ALGOL тілдер отбасына негізделген, ал ALGOL-ға ұқсас Pascal және Modula 2 сияқты тілдер көп жылдар бойы BASIC-тің қазіргі нұсқаларына әсер етті. GOTO операторларын ғана қолдана отырып, "спагетти" емес, құрылымдық бағдарламалау тілінде жазылған бағдарламалармен салыстырылатын, жақсы құрылған және оқуға ыңғайлы бағдарламалар жазу мүмкін болғанымен, құрылымдық бағдарламалау оны жеңілдетеді және талап етеді. Жоғарыдағы мысалға ұқсас if–then–else операторлары құрылымдық бағдарламалаудың маңызды элементтерінің бірі болып табылады және олар C, Java, JavaScript және Visual Basic сияқты көптеген танымал жоғары деңгейлі бағдарламалау тілдерінде кездеседі.

Ifthenelse сөз тіркестері

Көптеген тілдер if өрнектерін қолдайды, олар if операторларына ұқсас, бірақ нәтиже ретінде мән береді. Осылайша, олар мәндік өрнектер (мәнге бағаланатын), операторлар емес (мән күтілетін жерде рұқсат етілмеуі мүмкін).

Visual Basic-тің негізгі

Visual Basic және тағы басқа бірнеше тілдерде IIf деп аталатын функция бар, оны шартты өрнек ретінде қолдануға болады. Дегенмен, ол нағыз шартты өрнек сияқты жұмыс істемейді, себебі екі тармақ – рас және жалған нұсқалары әрқашан есептеліп шығарылады; жай ғана олардың біреуінің нәтижесі қабылданып, екіншісінің нәтижесі IIf функциясымен қайтарылады.

Болжам

Шартты тармақталу нұсқауларына балама ретінде предикация қолданылады. Предикация – басқару ағынын өзгерту орнына нұсқауларды шартты түрде орындауға мүмкіндік беретін архитектуралық мүмкіндік.

Таңдау жүйесіне қарсы сілтеме

Бұл кесте әрбір тілдің ең соңғы тілдік сипаттамасына сілтеме жасайды. Сипаттамасы жоқ тілдер үшін соңғы ресми жарияланған нұсқасы қолданылады. Бағдарламалау тілі Құрылымдық егер ауыстыру-таңдау-жағдай Арифметикалық егер Үлгіге сәйкес келтіру болса, әйтпесе басқа Ada APL Bash shell C, C++ C# COBOL Eiffel F# Fortran 90 Go Haskell Java ECMAScript (JavaScript) Mathematica Oberon Perl PHP Pascal, Object Pascal (Delphi) Python QuickBASIC Ruby Rust Scala SQL Swift Tcl Visual Basic, классикалық Visual Basic NET Windows PowerShell