متغیر
متغیر یک روش نام دهی و ذخیرهی مقدار برای استفاده در آینده، توسط برنامه است؛ بهعنوانمثال، دادهای از یک سنسور یا مقداری واسطهای که در یک محاسبه استفاده میشود.
تعریف متغیرها
متغیرها باید پیش از استفاده، تعریف (اعلان) شوند. تعریف یک متغیر یعنی تعریف نوع آن و (اختیاری) تنظیم مقدار اولیه برای آن (مقداردهی اولیه به متغیر). نیازی به مقداردهی اولیه به متغیرها هنگام تعریف نیست اما این کار معمولاً مفید است.
1 2 3 | int inputVariable1; int inputVariable2 = 0; //هر دو صحیح هستند. |
برنامهنویسها باید به اندازهی اعدادی که میخواهند در نوعدادهی مدنظرشان ذخیره کنند، توجه کنند. هنگامیکه مقدار ذخیرهشده در متغیرها از فضایی که برای ذخیره کردن به آنها دادهشده بیشتر باشد، متغیر خواهد چرخید. برای مثال به قسمت چرخیدن (رول اُوِر) متغیرها در همین صفحه مراجعه کنید.
حوزهی دید متغیر
یکی دیگر از انتخابهایی که برنامهنویس با آنها مواجه میشود این است که کجا متغیر را تعریف (اعلان) کند . مکان مشخصی که متغیر تعریفشده، روی اینکه توابعِ مختلفِ برنامه چگونه آن را میبیند، اثر میگذارد. به این تأثیر، حوزهی دید متغیر گویند.
مقداردهی اولیه به متغیرها
هنگام تعریف، متغیرها (با دادن یک مقدار آغازین) میتوانند مقداردهی اولیه شوند؛ این کار اختیاری است. یک تمرین خوب برنامهنویسی قبل از دسترسی به داده برای اهداف دیگر، این است که چک کنیم (یا حتی چندباره چک کنیم) که آیا متغیر، دادهی معتبر دارد یا نه.
مثال:
1 2 | int calibrationVal = 17; // تعریف متغیر و مقداردهی اولیه به آن |
رول اُوِر (roll over) متغیرها
وقتیکه متغیرها از مقدار حداکثری (ماکسیمم) خود عبور میکنند، به مقدار حداقلی (مینیمم) خود برمیگردند. مثلا متغیری را در نظر بگیرید که از 0 تا عدد 99 را میتواند ذخیره کند. اگر متغیر عدد 99 را داشته باشد و سپس بهعلاوه 1 شود، مقدار متغیر به 0 بازخواهد گشت. این رفتار در هر دو جهت رخ میدهد و به آن رول اور ، چرخیدن یا غلتیدن میگویند.
1 2 3 4 5 6 7 | int x x = -32,768; x = x - 1; // رول اور در جهت منفی // متغیر ایکس در حال حاضر مقدار // 32,767 // را دارد. |
1 2 3 4 5 6 | x = 32,767; x = x + 1; // رول اور // متغیر ایکس در حال حاضر مقدار // 32,768- // را در خود دارد. |
استفاده از متغیرها
بعد از اینکه متغیر تعریف شد، میتوان از آن استفاده کرد. برای این کار مقدار را با استفاده از علامت انتساب (تک مساوی)، به متغیر نسبت میدهیم. علامت انتساب به برنامه میگوید که هر چیزی که در سمت راست علامت مساوی است را در متغیر سمت چپ، قرار بده.
1 2 3 4 | inputVariable1 = 7; // به منغیر، مقدار هفت را نسبت دادهایم. inputVariable2 = analogRead(2); // به متغیر،(دیجیتال شدهی) ولتاژ ورودی خواندهشده از پین آنالوگ شماره دو را میدهد. |
مثال
1 2 3 4 5 | int lightSensVal; char currentLetter; unsigned long speedOfLight = 186000UL; char errorMessage = {"choose another option"}; //توضیحات رشتهها در آردوینو را ببینید . |
برای مثال، کد زیر چک میکند که آیا متغیر inputVariable2 کمتر از 100 هست یا نه. سپس طبق inputVariable2، یک تاخیر ایجاد میکند که حداقل 100 است.
1 2 3 4 5 6 | if (inputVariable2 < 100) { inputVariable2 = 100; } delay(inputVariable2); |
مثال بالا هر سه عملیات مفید با متغیرها را نشان میدهد: متغیر را چک میکند ( ( inputVariable2 < 100 ) ) و اگر حاصل شرط true باشد، به متغیر مقدار میدهد ( inputVariable2 = 100 ) و مقدار متغیر را بهعنوان پارامتر ورودی به تابع ()delay میدهد ( (delay(inputVariable2 ).
نکته سلیقهای: بهتر است که به متغیرهایتان نامهای واضح و معنیدار بدهید. با این روش کد شما خوانایی بیشتری خواهد داشت. نامهای متغیری مثل tiltSensor و یا pushButton به شما و یا اشخاص دیگر (که کد شما را خواهند خواند) در فهم اینکه متغیر حاوی چه چیزی است، کمک میکند. برعکس، نامهایی مانند var و یا value کد شما را ناخوانا خواهند کرد.
قوانین نامگذاری متغیر
نام متغیر با یک عدد آغاز نشود.
نام متغیر از keyword های (کلمات ذخیرهشدهی) آردوینو نباشد.