Ағылшыншамен салыстырыңыз: абзацты басыңыз — түпнұсқа терезеде ашылады. Абзац астындағы EN түймесі оны мәтін ішінде көрсетеді.
Мазмұны
Кіріспе
Басқару ағыны мәлімдемесі, кодты белгілі бір шарттарға сәйкес орындайды.
Control flow statement that executes code according to some condition(s)
Компьютер ғылымында шартты операторлар (яғни шартты мәлімдемелер, шартты өрнектер және шартты конструкциялар) – бұл шешімдерді қабылдау үшін бағдарламалау тілінің командалары. Нақтырақ айтқанда, шартты операторлар бағдарламашы анықтаған логикалық шарттың мәні дұрыс немесе жалған болып бағаланғандығына байланысты әртүрлі есептеулерді немесе әрекеттерді орындайды. Басқару ағыны тұрғысынан, шешім әрқашан белгілі бір шартқа негізделген басқару ағынын таңдау арқылы жүзеге асырылады (тарау болжамын қоспағанда). Динамикалық диспетчеризация әдетте шартты конструкция ретінде жіктелмесе де, орындау кезінде баламаларды таңдаудың тағы бір тәсілі болып табылады. Шартты мәлімдемелер – бұл бағдарламадағы жағдайға қарай мінез-құлқы анықталатын бақылау нүктелері.
In computer science, conditionals (that is, conditional statements, conditional expressions and conditional constructs) are programming language commands for handling decisions. Specifically, conditionals perform different computations or actions depending on whether a programmer defined Boolean condition evaluates to true or false. In terms of control flow, the decision is always achieved by selectively altering the control flow based on some condition (apart from the case of branch predication). Although dynamic dispatch is not usually classified as a conditional construct, it is another way to select between alternatives at runtime. Conditional statements are the checkpoints in the programme that determines behaviour according to situation.
Терминология
Императивті бағдарламалау тілдерінде әдетте "шартты оператор" термині қолданылады, ал функционалдық бағдарламалауда "шартты өрнек" немесе "шартты құрылым" терминдері көбірек қолданылады, себебі бұл терминдердің бәрі ерекше мағынаға ие.
In imperative programming languages, the term "conditional statement" is usually used, whereas in functional programming, the terms "conditional expression" or "conditional construct" are preferred, because these terms all have distinct meanings.
Тарих және дамуы
Алғашқы бағдарламалау тілдерінде, әсіресе 1980-ші жылдардағы үй компьютерлеріндегі BASIC диалектілерінде, if–then операторы тек GOTO операторларын (бір тармаққа бағыну нұсқаулығымен тең) қамтуы мүмкін еді. Бұл бағдарламалаудың түсінілуі қиын "спагетти" стиліне әкелді, ал осы стильде жазылған бағдарламалар "спагетти" коды деп аталды. Соның салдарынан, if-тармақтарында (іс жүзінде) кез келген операторларды оператор блоктарына қоюға мүмкіндік беретін құрылымдық бағдарламалау танымал бола бастады, тіпті көптеген BASIC бағдарламалау орталарында да стандартқа айналды. Мұндай механизмдер мен принциптер көне, бірақ одан да жетілген ALGOL тілдер отбасына негізделген, ал ALGOL-ға ұқсас Pascal және Modula 2 сияқты тілдер көп жылдар бойы BASIC-тің қазіргі нұсқаларына әсер етті. GOTO операторларын ғана қолдана отырып, "спагетти" емес, құрылымдық бағдарламалау тілінде жазылған бағдарламалармен салыстырылатын, жақсы құрылған және оқуға ыңғайлы бағдарламалар жазу мүмкін болғанымен, құрылымдық бағдарламалау оны жеңілдетеді және талап етеді. Жоғарыдағы мысалға ұқсас if–then–else операторлары құрылымдық бағдарламалаудың маңызды элементтерінің бірі болып табылады және олар C, Java, JavaScript және Visual Basic сияқты көптеген танымал жоғары деңгейлі бағдарламалау тілдерінде кездеседі.
In early programming languages, especially some dialects of BASIC in the 1980s home computers, an if–then statement could only contain GOTO statements (equivalent to a branch instruction). This led to a hard to read style of programming known as spaghetti programming, with programs in this style called spaghetti code. As a result, structured programming, which allows (virtually) arbitrary statements to be put in statement blocks inside an if statement, gained in popularity, until it became the norm even in most BASIC programming circles. Such mechanisms and principles were based on the older but more advanced ALGOL family of languages, and ALGOL like languages such as Pascal and Modula 2 influenced modern BASIC variants for many years. While it is possible while using only GOTO statements in if–then statements to write programs that are not spaghetti code and are just as well structured and readable as programs written in a structured programming language, structured programming makes this easier and enforces it. Structured if–then–else statements like the example above are one of the key elements of structured programming, and they are present in most popular high level programming languages such as C, Java, JavaScript and Visual Basic .
Ifthenelse сөз тіркестері
Көптеген тілдер if өрнектерін қолдайды, олар if операторларына ұқсас, бірақ нәтиже ретінде мән береді. Осылайша, олар мәндік өрнектер (мәнге бағаланатын), операторлар емес (мән күтілетін жерде рұқсат етілмеуі мүмкін).
Many languages support if expressions, which are similar to if statements, but return a value as a result. Thus, they are true expressions (which evaluate to a value), not statements (which may not be permitted in the context of a value).
Visual Basic-тің негізгі
Visual Basic және тағы басқа бірнеше тілдерде IIf деп аталатын функция бар, оны шартты өрнек ретінде қолдануға болады. Дегенмен, ол нағыз шартты өрнек сияқты жұмыс істемейді, себебі екі тармақ – рас және жалған нұсқалары әрқашан есептеліп шығарылады; жай ғана олардың біреуінің нәтижесі қабылданып, екіншісінің нәтижесі IIf функциясымен қайтарылады.
In Visual Basic and some other languages, a function called IIf is provided, which can be used as a conditional expression. However, it does not behave like a true conditional expression, because both the true and false branches are always evaluated; it is just that the result of one of them is thrown away, while the result of the other is returned by the IIf function.
Болжам
Шартты тармақталу нұсқауларына балама ретінде предикация қолданылады. Предикация – басқару ағынын өзгерту орнына нұсқауларды шартты түрде орындауға мүмкіндік беретін архитектуралық мүмкіндік.
An alternative to conditional branch instructions is predication. Predication is an architectural feature that enables instructions to be conditionally executed instead of modifying the control flow.
Таңдау жүйесіне қарсы сілтеме
Бұл кесте әрбір тілдің ең соңғы тілдік сипаттамасына сілтеме жасайды. Сипаттамасы жоқ тілдер үшін соңғы ресми жарияланған нұсқасы қолданылады. Бағдарламалау тілі Құрылымдық егер ауыстыру-таңдау-жағдай Арифметикалық егер Үлгіге сәйкес келтіру болса, әйтпесе басқа 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
This table refers to the most recent language specification of each language. For languages that do not have a specification, the latest officially released implementation is referred to. Programming language Structured if switch–select–case Arithmetic if Pattern matching then else else–if 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, classic Visual Basic NET Windows PowerShell