عملگرهای مقایسه در Julia مانند بسیاری از زبانهای دیگر هستند، هرچند چند گزینهی اضافه هم برای علاقهمندان به ریاضی دارند.
برای بررسی برابری، عملگرها == (برابر) و != یا ≠ (نابرابر) هستند.
txt = "abc"
txt == "abc" # true
txt != "abc" # false
txt ≠ "abc" # false (synonym for !=)
علاوه بر این، عملگرهای متعددی برای کوچکتر و بزرگتر بودن هم داریم.
1 < 3 # true
3 > 3 # false
3 <= 3 # true
3 ≤ 3 # true (synonym for <=)
4 >= 3 # true
4 ≥ 3 # true (synonym for >=)
همانطور که اغلب در Julia میبینیم، یک ویرایشگر مناسب استفاده از نمادهای ریاضی را آسان میکند. \ne، \le یا \ge را تایپ کنید و سپس TAB را بزنید تا ≠، ≤ یا ≥ را به دست آورید.
مثال قبلی فقط از اعداد استفاده میکند، اما در بخشهای دیگر برنامهی درسی خواهیم دید که انواع دیگری هم مفهوم ترتیب دارند و میتوان کوچکتر یا بزرگتر بودن آنها را بررسی کرد.
عملگرهای مقایسه را میتوان زنجیرهای به کار برد که نحوهی نگارشی روشن و موجز را ممکن میکند:
n = 3
1 ≤ n ≤ 5 # true (n "between" two limits)
مثال قبلی معادل 1 ≤ n && n ≤ 5 است.
if
این شکل کامل یک دستور شرطی if است:
if conditional1
statements...
elseif conditional2
statements...
else
statements...
end
نیازی به پرانتز () یا آکولاد {} نیست و تورفتگی «فقط» برای بهتر شدن خوانایی است (اما خوانایی بسیار مهم است!).
هم elseif و هم else اختیاریاند و میتوان چند بلوک elseif نوشت. اما end الزامی است.
میتوان دستورهای شرطی if را تودرتو کرد، هرچند ممکن است بخواهید با استفادهی سنجیده از پرانتز، تورفتگی و کامنت، به خوانایی کمک کنید.
کوتاهترین شکل یک دستور شرطی if به این صورت است:
if n < 0
n = 0
end
یادآوری: تنها عبارتهایی میتوانند به عنوان شرط به کار روند که به true یا false ارزیابی شوند.
Julia آگاهانه از هرگونه مفهوم «درستنمایی» پرهیز میکند، بنابراین مقدارهای صفر، رشتههای خالی و آرایههای خالی معادل false نیستند.
یک موقعیت ساده و رایج، انتخاب یکی از دو مقدار بر اساس یک شرط است.
Julia هم مانند بسیاری از زبانها یک عملگر سهتایی دارد تا این کار را موجزتر کند.
نحوهی نگارش آن conditional ? value_if_true : value_if_false است.
پس مثال قبلی را میتوان اینگونه بازنویسی کرد:
n = n < 0 ? 0 : n
کامپایلر پرانتز را الزامی نمیداند، اما پرانتزها ممکن است خوانایی را بهتر کنند.
در این تمرین، کدی مینویسید که تولید یک خط مونتاژ را در یک کارخانهی خودروسازی تحلیل میکند.
سرعت خط مونتاژ میتواند از 0 (خاموش) تا 10 (حداکثر) باشد.
در کمترین سرعت خط مونتاژ (1)، هر ساعت 221 خودرو تولید میشود.
تولید بهصورت خطی با سرعت افزایش مییابد.
پس وقتی سرعت روی 4 تنظیم شود، باید هر ساعت 4 * 221 = 884 خودرو تولید کند.
با این حال، سرعتهای بالاتر احتمال تولید خودروهای معیوب را بیشتر میکنند؛ خودروهایی که در نتیجه باید دور انداخته شوند.
سه وظیفه دارید. هر یک از توابع موردنیاز یک پارامتر عدد صحیح میگیرد: سرعت خط مونتاژ.
متد success_rate() را پیادهسازی کنید تا احتمال تولید یک محصول بدون خطا را در یک سرعت مشخص محاسبه کند.
جدول زیر نشان میدهد سرعت چگونه بر نرخ موفقیت اثر میگذارد:
0: نرخ موفقیت ۰٪.1 تا 4: نرخ موفقیت ۱۰۰٪.5 تا 8: نرخ موفقیت ۹۰٪.9: نرخ موفقیت ۸۰٪.10: نرخ موفقیت ۷۷٪.julia> success_rate(10)
0.77
متد production_rate_per_hour() را پیادهسازی کنید تا نرخ تولید ساعتی خط مونتاژ را با در نظر گرفتن نرخ موفقیت آن محاسبه کند.
julia> production_rate_per_hour(6)
1193.4
توجه کنید که مقدار برگرداندهشده از نوع اعشاری است.
متد working_items_per_minute() را پیادهسازی کنید تا محاسبه کند در هر دقیقه چند خودروی سالم تولید میشود:
julia> working_items_per_minute(6)
19
توجه کنید که مقدار برگرداندهشده یک عدد صحیح است: محصولهای ناقص در نظر گرفته نمیشوند.