دستور شرطی if...else در سوئیفت

زمان مطالعه : ۴ دقیقه
آخرین بروزرسانی : ۰۷ اسفند ۱۴۰۰
آموزش دستور شرطی if...else در زبان برنامه نویسی سوئیفت

دستورات شرطی از مهم ترین بخش های هر زبان برنامه نویسی بشمار می آیند، ما میتوانیم با بررسی شرط های مختلف، کار های مختلفی را انجام دهیم، برای مثال سه حالت زیر را در نظر بگیرید.

  1. دانشجویی نمره ای بین 16 تا 20 بگیرد، نمره عالی را گرفته است.
  2. دانشجویی نمره ای بین 10 تا کمتر از 16 بگیرد، نمره قابل قبول را گرفته است.
  3. دانشجویی نمره ای بین 0 تا کمتر از 10 را بگیرد، مردود شده است.

باید بتوانیم با دستورات شرطی برنامه ای بنویسیم که هر سه حالت بالا را اجرا کند.

حالا بریم با مهم ترین دستور شرطی، یعنی if آشنا بشویم.

دستور شرطی if در سوئیفت

ابتدا باید دستور if را بنویسیم و بعد در ادامه اش شرط را قرار بدهیم، اگر شرط صحیح باشد تمام بلاک کد اجرا میشود، در غیر اینصورت از بلاک کد عبور میکند، به مثال زیر دقت کنید.

if condition {
// if the condition is correct, this code will be executed
}

حالا جای condition چه چیزی باید قرار دهیم؟

باید در condition از عملگرهای مقایسه ای، یا داده ای از نوع Bool استفاده کنیم، تو این لیست تمام عملگر های مقایسه ای (comparison operator) را آورده ایم.

عملگر مقایسه مفهوم مثال جواب شرط
== برابر هستند؟ 3 == 5 خیر برابر نیستند، پس غلط است.
=! برابر نیستند؟ 3 =! 5 بله برابر نیستند، پس صحیح است.
< بزرگ تر است؟ 3 < 5 بله بزرگ تر است، پس صحیح است.
> کوچک تر است؟ 3 > 5 خیر کوچک تر نیست، پس غلط است.
=< بزرگ تر یا مساوی است؟ 3 =< 5 بله بزرگ تر مساوی است، پس صحیح است.
=> کوچک تر یا مساوی است؟ 7 => 7 بله مساوی است، پس صحیح است.

حالا بریم سراغ چند تا مثال که قشنگ مفهوم if تو سوئیفت براتون جا بیوفته!

if 5 > 3 {
print("5 greater than 3")
}

چون condition صحیح هست، پس دستور print اجرا میشود.

خروجی:

5 greater than 3

حالا دستوری غلط را میخواهیم چک کنیم، چون 3 برابر نیست با 5 وارد بلاک کد نمیشویم و دستور print اجرا نمیشود.

if 5 == 3 {
print("5 greater than 3")
}

خروجی:


دقت کنید که خارج از شرط if هر کدی که قرار بدهیم، در هر صورت اجرا میشود و فقط داخل بلاک شرط وابسته به صحیح بودن condition هست.

if 5 == 3 {
print("5 greater than 3")
}
print("out of if condition")

خروجی:

out of if condition

همانطور که میبینید شرط صحیح نبود و داخل بلوک if اجرا نشد ولی دستور print بعدی که خارج از شرط بود، اجرا شد.


حال میخواهیم در condition بجای گذاشتن عدد، متغیر قرار دهیم، به مثال زیر دقت کنید.

let number1 = 3
let number2 = 5
if number1 < number2 {
print("number2 greater than number1")
}

خروجی:

number2 greater than number1

دستور شرطی if ... else در سوئیفت

فرض کنید میخواهیم این 2 حالت زیر را پیاده کنیم.

  1. اگر عددی بزرگ تر مساوی صفر باشد، پس عددی مثبت است.
  2. در غیر اینصورت عددی منفی است.

میتوانیم از دستور if و else استفاده کنیم، به این حالت که اگر شرط برقرار باشد بلوک مربوط به if اجرا میشود، و اگر شرط غلط باشد بلوک مربوط به else اجرا میشود.

if condition {
// if the condition is true, this code will be executed
} else {
// if the condition is false, this code will be executed
}
نکته:
  • امکان اجرای هر دو بلوک if و else وجود ندارد، یعنی یا بلوک مربوط به if اجرا میشود و یا else
  • کد هایی که خارج از دستور شرطی هستند، در هر صورت اجرا میشوند.
let price = 120
if price > 100 {
print("price is greater than 100.")
} else {
print("price is not greater than 100.")
}
print("this code is always executed.")

خروجی:

price is greater than 100.
this code is always executed.

if...else else if در سوئیفت

حالا میخواهیم در مورد چند if و else پشت هم صحبت کنیم، به حالت های زیر دقت کنید.

  1. اگر برنامه نویسی Swift بلد باشد، برنامه نویس اپل است.
  2. اگر برنامه نویسی php بلد باشد، برنامه نویس سرور است.
  3. در غیر اینصورت برنامه نویس معمولی است.

برای پیاده کردن حالت های بالا به if else else if نیاز داریم، به مثال زیر دقت کنید.

let language = "Swift"

if language == "Swift" {
print("she is Apple programmer.")
}

else if language == "php" {
print("she is server-side programmer.")
}

else {
print("she is programmer.")
}
نکته:
  • از else if موقعی استفاده میشود که شما یک شرط را بررسی کرده اید، و میخواهید در صورت برقرار نبودن شرط اول، یک شرط دیگر را بررسی کنید.
  • اما از else موقعی استفاده میشود که در صورت برقرار نبودن شرط اول (بدون بررسی شرط جدید) میخواهید کاری را انجام دهید.
  • فاصله بین دستور شرطی و پرانتز ها تاثیری در نتیجه ندارد. (در مثال بالا برای خوانایی بیشتر بین دستور ها فاصله قرار دادیم.)

به تفاوت های دو مثال if...else و else if دقت کنید.

مثال 1- if...else

let price = 50

if price > 150 {
print("price is greater than 150.")
}

else if price > 100 {
print("price is greater than 100.")
}

خروجی:

همانطور که میبینید هیچ کدام از دو شرط بالا برقرار نیستند پس هیچ متنی در خروجی چاپ نمیشود.

حال به مثال زیر دقت کنید.

مثال 2- else if

let price = 50

if price > 150 {
print("price is greater than 150.")
} else {
print("price is less than 150.")
}

خروجی:

price is less than 150.

عملگرهای منطقی در سوئیفت

فرض کنید نیاز داریم در condition چند شرط را بررسی کنیم، و در صورت برقرار بودن هر دو شرط یا برقرار بودن یکی از دو شرط وارد بلوک if شویم.

برای این کار میتوانیم از عملگرهای منطقی استفاده کنیم تو جدول زیر میتوانید این دو عملگر مهم را ببینید.

علامت مفهوم مثال
&& هر دو شرط باید صحیح باشند. firstCondition && secondCondition
|| یکی از دو شرط باید صحیح باشند. firstCondition || secondCondition

حالا بریم از هر کدام یک مثال ببینیم که براتون جا بیوفته!

مثال 4: عملگر && سوئیفت

let girlAge = 18
let boyAge = 19

if girlAge < 20 && boyAge < 20 {
print("girl and boy are under 20.")
}

خروجی:

girl and boy are under 20.

مثال 5: عملگر || سوئیفت

let number1 = 5
let number2 = 11

if number1 > 10 || number2 > 10 {
print("one of numbers is greater than 10.")
}

خروجی:

one of numbers is greater than 10.

if تو در تو در سوئیفت

امکان این که درون بلوک if یک شرط دیگر را بگذاریم وجود دارد، به مثال زیر دقت کنید.

if condition {
print("condition is true.")

if condition2 {
print("condition2 is true.")
}
}

این مقاله در حال بروز رسانی است و در آینده نزدیک مباحث جدید تری اضافه میشود...
میلاد خط شب
میلاد خط شب
معتقدم هر آدمی میتواند در یک زمینه ای مفید و تاثیر گذار باشد و اصولا آدم "غیر مفید" نداریم. فقط کافی است به موقع و صحیح راهنمایی شود.

مرتضی

29 خرداد 1401

کد هارو کجا میتونم اجرا کنم؟

پاسخ دهید


برخی از افرادی که این مقاله را پسندیدند 🥰

51