ساختار if / else در آردوینو
ساختار if / else در آردوینو به نسبت if ساده، با چک کردن چند شرطِ همراه با هم، قدرت بیشتری در کنترل جریان کد به ما میدهد. برای مثال در چک کردن یک ورودی آنالوگ، هنگامی که ورودی کمتر از 500 است،کار خاصی قابل انجام است و کار دیگر، هنگامی صورت می گیرد که ورودی بیشتر یا مساوی 500 باشد. کد این مثال به شکل زیر خواهد بود:
if (pinFiveInput < 500) { // action A } else { // action B }
else میتواند یک تستِ if دیگر انجام دهد؛ بنابراین تست های چندتایی و یا تست های ناسازگارِ با هم نیز می توانند همزمان اجرا شوند و نتایج صحیحی را ارائه نمایند. هر شرط، تا رسیدن به شرطی که حاصلِ true داشته باشد، بررسی خواهد شد. در واقع تمامی شرط ها یکی یکی تا رسیدن به جواب صحیح چک میشوند. هنگامی که حاصل عمل چک کردن یک شرط true شد؛ بلاک کد مربوط به آن اجرا خواهد شد و برنامه از مابقی ساختار if else چشم پوشی میکند تا به خط بعد از این ساختار برسد. اگر هیچ شرطی به جواب true نرسد و بلاکِ else پیش فرض، وجود داشته باشد، این بلاک اجرا خواهد شد و عملیات پیش فرض را انجام خواهد داد. توجه کنید که میتوان از یک بلاکِ else if با یا بدون یک بلاک else پایانی استفاده کرد. عکس این جمله نیز صادق است. همچنین استفاده از else if محدودیتی ندارد و میتوانید به هر تعداد دلخواه، از این ساختار در یک بلاک کد استفاده کنید.
if (pinFiveInput < 500) { // do Thing A } else if (pinFiveInput >= 1000) { // do Thing B } else { // do Thing C }
یک راه دیگرِ ایجاد شرط های شاخه ای (ساختار کنترلی منشعب شونده) و تست های متقابلِ ناسازگار، استفاده از ساختار switch case است.