عملگرهای مقایسه در جولیا مشابه بسیاری از زبانهای دیگرند، هرچند چند گزینهی اضافی هم برای علاقهمندان به ریاضی دارند.
برای برابری، عملگرها == (برابر) و != یا ≠ (نابرابر) هستند.
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 >=)
همانطور که در جولیا رایج است، یک ویرایشگر مناسب استفاده از نماد ریاضی را آسان میکند. \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 ارزیابی شوند. جولیا بهعمد از هر مفهوم «درستنمایی» پرهیز میکند؛ بنابراین مقدار صفر، رشتهی خالی و آرایهی خالی معادل false نیستند.
یک موقعیت ساده و رایج، انتخاب یکی از دو مقدار بر اساس یک شرط است.
جولیا هم مانند بسیاری از زبانها یک عملگر سهتایی دارد که این کار را موجزتر میکند.
نحوهی نگارش آن conditional ? value_if_true : value_if_false است.
پس مثال قبلی را میتوان اینطور بازنویسی کرد:
n = n < 0 ? 0 : n
پرانتز برای کامپایلر الزامی نیست، اما ممکن است خوانایی را بهتر کند.
match دارد؟در حال حاضر هیچ ساختار match/case بخشی از زبان پایه نیست.
برای موارد ساده، استفاده از if..elseif..else توصیه میشود.
برای تطبیق الگوی پیشرفتهتر، مشابه Scala، بستهی Match.jl محبوب است. با این حال، مانند بیشتر بستههای شخص ثالث، Match در اجراکنندهی تست Exercism در دسترس نیست.