تعبير شرطي (برمجة الحاسوب)
في علم الحاسوب، العبارات الشرطية أو التعبيرات الشرطية و البناء الشرطي هي من مزايا لغة البرمجة، حيث يؤدوا عمليات وإجراءات مختلفة بحسب تحديد المبرمج للشرط المنطقي المقيد بـ صح أو خطأ.

عالم الحاسوب 
إن تعليمة if–then (تُدعى في بعض الأحيان  if–then–else) شائعة في الكثير من لغات البرمجة، رغم أن الشكل قد يختلف من لغة برمجة لأخرى، إلا أن الشكل الأساسي يبدو على كالتالي: If (boolean condition) Then
    (consequent)
 Else
    (alternative)
 End Ifعندما يرى المُفسِّر تعليمة If, فإنه يتوقع شرط منطقي، على سبيل المثال x> 0, أي أن «المتغير x يحوي رقم أكبر من الصفر» – ويقيِّم الشرط. إذا كان الشرط true, أي صحيحاً فيتم تنفيذ العبارة التي تلي then أما إن لم يكن الشرط صحيحاً فيتم تنفيذ الأسطر البرمجية اللاحقة – إما ضمن حقل else  (وهو اختياري عادةً), أو إن لم يكن هناك تعليمة else فيتم تنفيذ التعليمات التي تلي end If.

بعد الانتهاء من اختبار التعبير الشرطي وتنفيذ تعليماته، يعود تدفق التحكم للسطر الذي يلي   end If.

في لغات البرمجة الأولى، خاصة بعض اللغات المتفرعة من بيسيك ضمن الحواسيب المنزلية لثمانينيات القرن الماضي، فعبارة  if–then قد تحوي فقط على عبارات GOTO . مما يؤدي لتنسيق برمجي يصعب قراءته، وهو ما يعرف بـ برمجة سباغيتّي!  البرامج التي تحوي على مثل هذا التنسيق تسمى كود سباغيتّي. ونتيجةً لذلك، فقد كسبت البرمجة المهيكلة _والتي تسمح (افتراضياً) بوضع العبارات العشوائية في حقول ضمن عبارة if _ شعبية واسعة، إلى أن أصبحت معياراً حتى في معظم حلقات برمجة بيسيك.  اعتمدت مثل هذه الطرق والمبادئ على عائلة لغات ألغول القديمة ولكن الأكثر تقدماً آنذاك. وقد أثّرت لغات البرمجة الشبيهة بألغول مثل باسكال وModula-2 على لغات بيسيك الحديثة للعديد من السنوات. وفي حين أنه من الممكن أثناء استخدام عبارة GOTO فقط، ضمن عبارات if-then لكتابة برامج ليست «سباغيتي» ومهيكلة بشكل جيد وقابل للقراءة مثل لغة البرمجة المهيكلة، فإن البرمجة المهيكلة تجعل هذه العملية أسهل وبشكل إجباري. العبارات المهيكلة في عبارات if-then-else كالمثال أعلاه، هي واحدة من العناصر المفتاحية (الأساسية) للبرمجة المهيكلة، وهي موجودة في معظم لغات البرمجة الشهيرة والعالية المستوى مثل سي وجافا وجافا سكريبت وفيجوال بيسيك. 

أحد المشاكل الدقيقة هي أن عبارة else الاختيارية والموجودة في العديد من اللغات تؤدي إلى تنسيق قواعدي مُبهم وغير واضح، حيث يمكن تحليل الشروط المتداخلة بطرق مختلفة، فمثلاً
 if a then if b then s else s2
يمكن أن تُفهم بالشكل
 if a then (if b then s) else s2
أو
 if a then (if b then s else s2)
وذلك بحسب كون elseمرتبطة مع أول if أو ثاني if. يُعرف هذا بمشكلة Dangling else، ويتم حله بطرق عدة وحسب لغة البرمجة.

Else if 
يمكن باستخدام else if, الجمع بين شروط عديدة. وفي هذه الحالة يتم تنفيذ أول شرط يكون صحيحاً، ويتم تجاهل باقي العبارات.

تعبيرات If-then-else 
تدعم العديد من اللغات تعبيرات if، وهي مشابهة لعبارات if، ولكنها تُعيد قيمة كنتيجة. وبالتالي فهي تعبيرات صحيحة (والتي تُقيِّم مقدار معين) وليست عبارات (والتي تغير مسار البرنامج لتنفيذ بعض أنواع المهام).

عائلة ألغول 
تسمح ألغول 60 وأفراد أخرى من عائلة ألغول باستخدام if-then-else كتعبير:  myvariable := if x> 10 then 1 else 2

في فيجوال بيسيك 
في فيجوال بيسيك وبعض اللغات الأخرى، هناك وظيفة تدعي IIf والتي يمكن استخدامها كتعبير شرطي. على أية حال فإن هذه الوظيفة لا تسلك سلوك التعبير الشرطي الصحيح وذلك لأنه دائماً يتم تقييم كلا الحالتين الصحيحة والخاطئة، ويتم تجاهل نتيجة أحداهم والنتيجة الأخرى تُعاد من قبل وظيفة IIF.

المصادر 

بناء شرطي
في علم الحاسوب ، العبارات الشرطية أو التعبيرات الشرطية و البناء الشرطي هي من مزايا لغة البرمجة ، حيث يؤدوا عمليات و إجراءات مختلفة ب حسب تحديد المبرمج للشرط المنطقي المقيد بـ صح أو خطأ . عالم الحاسوب إن تعليمة if – then ( تُدعى في بعض الأحيان if – then – else ) شائعة في الكثير من لغات البرمجة ، رغم أن الشكل قد يختلف من لغة برمجة لأخرى ، إلا أن الشكل الأساسي يبدو على ك التالي : If ( boolean condition ) Then ( consequent ) Else ( alternative ) End If عندما يرى المُفسِّر تعليمة If , ف إن ه يتوقع شرط منطقي ، على سبيل المثال x > أي أن « المتغير x يحوي رقم أكبر من الصفر » – ويقيِّم الشرط . إذا كان الشرط true , أي صحيحاً ف يتم تنفيذ العبارة التي تلي then أما إن لم يكن الشرط صحيحاً ف يتم تنفيذ الأسطر البرمجية اللاحقة – إما ضمن حقل else ( و هو اختياري عادةً ) , أو إن لم يكن هناك تعليمة else ف يتم تنفيذ ال تعليمات التي تلي end If . بعد الانتهاء من اختبار التعبير الشرطي و تنفيذ تعليمات ه ، يعود تدفق التحكم للسطر الذي يلي end If . في لغات البرمجة الأولى ، خاصة بعض اللغات المتفرعة من بيسيك ضمن الحواسيب المنزلية لثمانينيات القرن الماضي ، فعبارة if – then قد تحوي فقط على عبارات GOTO . مما يؤدي ل تنسيق برمجي يصعب قراءة ه ، و هو ما يعرف بـ برمجة سباغيتّي ! البرامج التي تحوي على مثل هذا التنسيق تسمى كود سباغيتّي . ونتيجةً ل ذٰلك ، ف قد كسبت البرمجة الم هيكلة _و التي تسمح ( افتراضياً ) ب وضع العبارات العشوائية في حقول ضمن عبارة if _ شعبية واسعة ، إلى أن أصبحت معياراً حتى في معظم حلقات برمجة بيسيك . اعتمدت مثل هذه الطرق والمبادئ على عائلة لغات ألغول القديمة و لٰكن الأكثر تقدماً آنذاك . و قد أثّرت لغات البرمجة الشبيهة بألغول مثل باسكال وModula - 2 على لغات بيسيك الحديثة ل العديد من السنوات . و في حين أن ه من الممكن أثناء استخدام عبارة GOTO فقط ، ضمن عبارات if - then لكتابة برامج ليست « سباغيتي » وم هيكلة ب شكل جيد وقابل للقراءة مثل لغة البرمجة الم هيكلة ، ف إن البرمجة الم هيكلة تجعل هذه العملية أسهل و ب شكل إجباري . العبارات الم هيكلة في عبارات if - then - else ك المثال أعلا ه ، هي واحدة من العناصر المفتاحية ( الأساسية ) للبرمجة الم هيكلة ، و هي موجودة في معظم لغات البرمجة الشهيرة والعالية المستوى مثل سي وجافا وجافا سكريبت وفيجوال بيسيك . أحد المشاكل الدقيقة هي أن عبارة else الاختيارية والموجودة في العديد من اللغات تؤدي إلى تنسيق قواعدي مُب هم و غير واضح ، حيث يمكن تحليل الشروط المتداخلة ب طرق مختلفة ، فمثلاً if a then if b then s else s2 يمكن أن تُفهم ب الشكل if a then ( if b then s ) else s2 أو if a then ( if b then s else s2 ) و ذٰلك ب حسب كون elseمرتبطة مع أول if أو ثاني if . يُعرف هذا ب مشكلة Dangling else ، و يتم حله ب طرق عدة و حسب لغة البرمجة . Else if يمكن ب استخدام else if , الجمع بين شروط عديدة . و في هذه الحالة يتم تنفيذ أول شرط يكون صحيحاً ، و يتم تجاهل باقي العبارات . تعبيرات If - then - else تدعم العديد من اللغات تعبيرات if ، و هي مشابهة لعبارات if ، و لٰكن ها تُعيد قيمة ك نتيجة . و ب التالي ف هي تعبيرات صحيحة ( و التي تُقيِّم مقدار معين ) و ليست عبارات ( و التي تغير مسار البرنامج ل تنفيذ بعض أنواع المهام ) . عائلة ألغول تسمح ألغولوأفراد أخرى من عائلة ألغول ب استخدام if - then - else كتعبير : myvariable\ : = if x > thenelse 2 في فيجوال بيسيك في فيجوال بيسيك و بعض اللغات الأخرى ، هناك وظيفة تدعي IIf و التي يمكن استخدام ها كتعبير شرطي . على أية حال ف إن هذه الوظيفة لا تسلك سلوك التعبير الشرطي الصحيح و ذٰلك لأن ه دائماً يتم تقييم كلا الحالتين الصحيحة والخاطئة ، و يتم تجاهل نتيجة أحدى هم و النتيجة الأخرى تُعاد من قبل وظيفة IIF . المصادر بناء شرطي