Skip to content

Commit

Permalink
Update 1.11-if-switch.md
Browse files Browse the repository at this point in the history
تصحیح متن
  • Loading branch information
r3a70 committed May 24, 2023
1 parent 22c36a4 commit bf22a49
Showing 1 changed file with 19 additions and 19 deletions.
38 changes: 19 additions & 19 deletions content/chapter 1/1.11-if-switch.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ weight: 1011

## 1.11.1 شرط (if-else)

زبان گو همانند سایر زبان ها دارای {{< tooltip text="شروط" note="if-else" >}} می باشد و شما خیلی ساده می توانید از آن استفاده کنید. در مثال زیر ما فرمت استاندارد {{< tooltip text="شروط" note="if-else" >}} در زبان گو را قرار دادیم :
زبان گو همانند ساز سایر زبان ها دارای {{< tooltip text="شرط" note="if-else" >}} می باشد که خیلی ساده می توانید از آن استفاده کنید و در زیر ما فرمت استاندارد {{< tooltip text="شرط" note="if-else" >}} در زبان گو را قرار دادیم :

```go
if condition {
Expand All @@ -17,11 +17,11 @@ if condition {
//Do something
}
```
در بالا **condition** عبارتی است که قرار است وضعیت شرط را مشخص کند و در صورت **true** شدن, شرط بر قرار می شود. در صورت برقرار نشدن شرط اول برنامه وارد else if می شود و مجدد یک **condition** دیگری را چک می کند که آیا وضعیتش true **می** شود یا خیر و در نهایت منتهی می شود به **else**. `در مثال بالا اگر یکی از شروط **true** باشد شروط دیگر اجرا نخاهند شد. یعنی اگر شرط اول درست باشد دو شرط بعدی اجرا نخاهند شد و برنامه از آنها عبور خواهد کرد.`
در بالا **condition** عبارتی است که قرار است وضعیت شرط را مشخص کند و در صورت **true** شدن شرط بر قرار می شود و در صورت برقرار نشدن شرط اول وارد else if می شود و مجدد یک **condition** دیگری را چک می کنیم که وضعیتش true **می** شود یا خیر و در نهایت منتهی می شود به **else**.

در {{< tooltip text="شروط" note="if-else" >}} ما یک یا چندتا condition می توانیم داشته باشیم که این condition ها برای تعیین وضعیت از یکسری عملگر نظیر `&& , || , > , < , <= , => , !` و ... استفاده می کند.
در {{< tooltip text="شرط" note="if-else" >}} ما یک یا چندتا condition می توانیم داشته باشیم که این condition ها برای تعیین وضعیت از یکسری عملگرها نظیر `&& , || , > , < , <= , => , !` و ... استفاده می کند.

زبان گو از فرمت های زیر برای ایجاد {{< tooltip text="شروط" note="if-else" >}} استفاده می کند :
زبان گو از فرمت های زیر برای ایجاد {{< tooltip text="شرط" note="if-else" >}} استفاده می کند :

- فقط if
- if-else تو در تو (nested)
Expand Down Expand Up @@ -58,9 +58,9 @@ a is greater than 5
```
{{< playground url=iQM8BBAgHLH >}}

در بالا ما مقدار a را با عدد ۵ بررسی کردیم که آیا a از ۵ بزرگتر است یا خیر؟ و جواب بله a بزرگتر است و شرط برقرار شد.
در مثال بالا ما مقدار a را با عدد ۵ مقایسه کردیم و شرط ما به این صورت بود که آیا a از ۵ بزرگتر است یا خیر؟ و جواب `true` بود. a بزرگتر از 5 است و شرط برقرار شد.

در زیر مثال دیگر زدیم که چندتا condition را داخل یک شرط بررسی می کنیم برقرار می شود یا خیر :
در مثال زیر ما چند condition را داخل یک شرط برسی کردیم. `آیا a بزرگتر از 3 و a کوچک تر از 6 است ؟`


```go
Expand All @@ -83,7 +83,7 @@ a is within range

## 1.11.3 کلمه else

شرط با else فرمتش مانند زیر است :
فرمت شرط همراه با else مانند مثال زیر است :

```go
if condition {
Expand All @@ -92,7 +92,7 @@ if condition {
//Do something
}
```
در بالا اگر condition برقرار نشود عملیات داخل else صورت میگیرد. که در ادامه یک مثال ساده زدیم :
در مثال بالا اگر condition برقرار نشود, کدهای داخل else اجرا خواهند شد. به مثال زیر توجه کنید :


```go
Expand Down Expand Up @@ -120,7 +120,7 @@ b is greater than a

## 1.11.4 ادامه شرط با else if

شما با استفاده کلمه else if می توانید condition دیگر را بررسی کرده و در صورت برقرار شدن شرط عملیات را انجام دهید.
شما با استفاده کلمه else if `دقیقا به همین فرمت که اینجا نوشته شده` می توانید condition دیگری را بررسی کرده و در صورت برقرار شدن شرط عملیات را انجام دهید.

```go
if condition1 {
Expand All @@ -132,7 +132,7 @@ if condition1 {
}
```

در زیر ما یک نمونه مثال برای else if زدیم :
به مثال زیر توجه کنید :

```go
package main
Expand All @@ -159,7 +159,7 @@ Young

## 1.11.5 شرط تو در تو (nested)

شما می توانید شرط تو در تو (nested) داشته باشید (برای توسعه پروژه بهتره است کمتر استفاده از کنید از شرط تو در تو)
در زبان گولمگ شما می توانید شروط تو در تو (nested) داشته باشید (برای توسعه بهتر پروژه, بهتر است کمتر از شرط های تو در تو استفاده کنید, زیرا این گونه شرط نویسی خوانایی کد را پایین می آورد)

```go
if condition {
Expand All @@ -171,7 +171,7 @@ if condition {
}
```

در زیر یک نمونه شرط تو در تو به همراه else قرار دادیم :
در مثال زیر یک نمونه شرط تو در تو به همراه else قرار دادیم :

```go
if condition1 {
Expand All @@ -187,7 +187,7 @@ if condition1 {
}
```

در زیر مثال برای شرط تو در تو زدیم :
در کد زیر مثالی برای شروط تو در تو زدیم:

```go
package main
Expand Down Expand Up @@ -220,15 +220,15 @@ Biggest is c

## 1.11.6 تعریف شرط و قرار دادن condition در متغیر کوتاه

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

```go
if statement; condition {
//Do something
}
```

در زیر یک مثال ساده زدیم که توضیح می دهیم :
به مثال زیر توجه کنید:

```go
package main
Expand All @@ -248,12 +248,12 @@ a is greater than 5
```
{{< playground url=4F6BXD7K7i6 >}}

در بالا ما یک متغیر کوتاه با نام a داخل شرط تعریف کردیم و مقدار 6 را بهش دادیم و سپس با قرار دادن `;` برقراری وضعیت شرط را بررسی کردیم.
در مثال بالا ما یک متغیر کوتاه با نام a داخل شرط تعریف کردیم و مقدار 6 را بهش دادیم و سپس با قرار دادن `;` `semi-colon` برقراری وضعیت شرط را بررسی کردیم.


## 1.11.7 Switch

زبان گو ‌مانند برخی از زبان ها از switch پشتیبانی می کند و switch یک روش خیلی خوب برای جلوگیری از else if های بیشتر در شرط می باشد.
زبان گو ‌مانند برخی از زبان ها از switch پشتیبانی می کند. switch یک روش بسیار ساده تر و همچنین روشی برای جلوگیری از else if های مکرر در شرط می باشد.

```go
switch statement; expression {
Expand All @@ -265,7 +265,7 @@ default:
//Dosomething
}
```
زمانیکه switch را تعریف می کنید شما باید statement و expression را برای بررسی قرار دهید و سپس داخل هر یک از case ها وضعیت برقرار بررسی می کنید و در نهایت اگر هیچکدام از case ها برابر با expresstion نباشد از default استفاده میکنیم تا مقدار پیش فرض را برگردانیم.
زمانیکه switch رو تعریف میکنیم, `هم میتونیم مقداری که قبلا تعریف کردیم رو برای برسی بهش بدیم و هم میتونیم از روش **تعریف متغیر به روش کوتاه**‌ یک مقدار جدید تعریف کنیم و بهش بدیم` بعد از کلمه switch باید یک مقدار رو بهش بدیم و داخل switch با استفاده از case برسی کنیم که مقداری که بهش داده شده با اون چیزی که مد نظر ما هست برابر هست یا خیر ور در آخر هم اگر هیچمدوم از case ها درست نبود مقدار پیشفرض رو با استفاده از default انجام بدیم. به مثال زیر توجه کنید:‌

```go
package main
Expand All @@ -291,7 +291,7 @@ b or c
{{< playground url=66AsdpdcW_P >}}


در مثال فوق ما حرف b انگلیسی را به متغیر کوتاه ch دادیم و سپس ch جهت بررسی هریک case ها پس `;` نقطه ویرگول قرار دادیم. و در نهایت در هر یک از case بررسی کردیم کدام مقدار برابر ch است.
در مثال بالا ما یک متغیر با نام ch رو به روش `تعریف متغیر به روش کوتاه` مقدار دهی کردم و همون متغیر رو برای برسی به switch دادیم. سپس با استفاده از کلید واژه ی case برسی کردیم که آیا ch برابر است با اون مقادیری که ما تعریف کردیم یا خیر. اگر برابر بود کد های درون اون case اجرا خواهند شد و اگر برابر نبود ما با استفاده از کلید واژه ی default مقدار پیفرضی رو در خروجی چاپ میکنیم.

## 1.11.8 Switch خودآزمون

Expand Down

0 comments on commit bf22a49

Please sign in to comment.