جاوا اسکریپت - عملگرهای شرطی و بولی. عبارت شرطی if else مخفف جاوا اسکریپت برای if

جاوا اسکریپت دارای یک ساختار شرطی است که بر اجرای یک برنامه تأثیر می گذارد. اگر (در انگلیسی اگر) چیزی است، چیزی درست است، پس یک کار را انجام دهید، در غیر این صورت (به انگلیسی other) - دیگری را انجام دهید.

اگر بیانیه

بیایید نگاهی گذرا به نحوه عملکرد دستور if بیندازیم، ساده است و نیاز به توضیح زیادی ندارد.

if (شرط) (کدی برای اجرا اگر شرط درست باشد)

ساده است: اگر شرط درست باشد، کد موجود در بلوک (...) اجرا می شود.

vardigit = 4; if (رقم == 4) ( document.write ("رقم 4 است.")؛ )

شما می توانید یک کد کمی عجیب و غریب انجام دهید:

vardigit = 4; if (true) (document.write ("شرط درست است.")؛ )

بیانیه else

دستور else را می توان همراه با دستور if استفاده کرد. به عنوان "در غیر این صورت" ترجمه می شود و یک کد جایگزین را مشخص می کند.

vardigit = 4; اگر (رقم

به املای متفاوت پرانتزهای فرفری در این مثال برای عبارات if و else توجه کنید. پس نوشتن اصلا اجباری نیست، هر دو نحو صحیح است.

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

vardigit = 4; اگر (رقم

جاوا اسکریپت مانند PHP یک عبارت elseif (در یک کلمه) ندارد.

اگر شما فقط نیاز به اجرای یک دستور دارید، به مهاربندهای فرفری بلوک (...) نیازی نیست. در مثال ما، آنها را می توان حذف کرد:

vardigit = 4; اگر (رقم

دروغگویی در جاوا اسکریپت

دستور if (شرط) شرط (عبارت) داخل پرانتز را به بولی (درست یا نادرست) ارزیابی و تبدیل می کند.

بیایید تکرار کنیم که یک دروغ در جاوا اسکریپت وجود دارد.

  • عدد 0 (صفر).
  • خط خالی "".
  • غلط بولی :)
  • مقدار صفر
  • مقدار تعریف نشده است.
  • مقدار NaN (نه یک عدد).

همه چیز دیگر درست است.

یکی دو خطای احتمالی:

If ("false") document.write("این درست است.
")؛ if (false) document.write("این درست است.

");

در اینجا باید رشته "false" (نقل شده) را از مقدار boolean type false تشخیص دهید.

If (" ") document.write("این درست است.
")؛ else document.write("این نادرست است.
");

در اینجا باید رشته " " (در داخل فضا) را از رشته خالی "" متمایز کنید. یک فاصله در یک رشته باعث می شود که آن خالی نباشد، بلکه یک کاراکتر حاوی آن باشد. مفسر اهمیتی نمی دهد که حرف باشد یا فاصله - کاراکتر یک کاراکتر است.

سایر ساختارهای شرطی در جاوا اسکریپت

  • ساختار سوئیچ جاوا اسکریپت.
  • عملگر علامت سوال

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

عبارات شرطی جاوا اسکریپت

اظهارات مشروطعباراتی در زبان جاوا اسکریپت (ECMAScript) هستند که بسته به شرایطی، به شما امکان می دهند یک یا چند دستورالعمل خاص را اجرا کنید.

اشکال عبارات شرطی در جاوا اسکریپت:

  • دستور if شرطی (با یک شاخه)؛
  • عملگر شرطی if...else (با دو شاخه);
  • else if... عبارت شرطی (با چند شاخه);
  • عملگر سه تایی (?: );
  • عبارت switch

بیانیه if شرطی

نحو دستور if:

اگر (شرط) بیانیه

اپراتور مشروطاگر متشکل از:

  • کلمه کلیدیاگر ؛
  • شرایط (عبارات داخل پرانتز)، که باید درست یا نادرست باشند (یا به یکی از این مقادیر ریخته شوند).
  • دستورالعمل هایی که باید دنبال کنیداگر شرط درست باشد یا به آن بستگی داشته باشد.

مثلا:

اگر (درست) تعداد = 4;

این مثال از true به عنوان شرط استفاده می کند. این بدان معنی است که دستور count = 4 همیشه اجرا می شود. این مثالفقط برای توضیح نحوه عملکرد دستور if داده شده است، زیرا تهی از هر معنایی است

به عنوان مثال، بیایید مقدار متغیر votes را 1 افزایش دهیم اگر (نوع آن) یک عدد باشد:

اگر (نوع آرا === "تعداد") votes++;

اگر نیاز به اجرای چندین دستورالعمل دارید، باید آنها را در براکت های فرفری قرار دهید:

If (نوع آرا === "تعداد") ( votes++; console.log ("تعداد آرا: " + آرا)؛ )

اگر (نوع آرا === "تعداد") (رای++؛ )

اگر... بیانیه دیگری

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

نحو:

If (شرط) (یک یا چند دستور (که باید در صورت درست بودن شرط اجرا شود یا به درستی داده شود)) دیگری (یک یا چند دستور (در صورت false بودن شرط یا cast به false اجرا می شود)

به عنوان مثال، بیایید پیامی در مورد زوج بودن یا نبودن عدد به کنسول چاپ کنیم:

If (عدد % 2) ( console.log("عدد فرد است!")؛ else (consol.log("عدد زوج است!")؛ )

قاعده ای برای تبدیل شرط به درست یا نادرست

اگر عبارت موجود در یک عبارت if برابر با true یا false نباشد، جاوا اسکریپت آن را به یکی از آن مقادیر ارسال می کند. او این عمل را با کمک به اصطلاح «قاعده دروغ» انجام می دهد.

معنی این قانون: هر عبارت درست است به جز مقادیر زیر:

  • نادرست (کاذب)؛
  • "" یا "" (رشته خالی)؛
  • NaN (نوع داده عددی ویژه "نه عدد")؛
  • 0 (عدد "صفر")؛
  • null (مقدار "خالی")؛
  • undefined (مقدار "تعریف نشده").

به عنوان مثال، بسته به مقدار ذخیره شده در متغیر nameUser، یک پیام خوشامدگویی را در کنسول مرورگر چاپ کنیم:

If (nameUser) ( console.log ("سلام، " + نام + "!")؛ ) else (consol.log ("سلام، مهمان!")؛ )

اگر متغیر nameUser حاوی یک رشته خالی باشد، طبق قانون دروغ، به مقدار false فرستاده می شود. بنابراین پیغام «سلام مهمان!» در کنسول نمایش داده می شود. .

و اگر، برای مثال، متغیر nameUser حاوی رشته "Timur" باشد، عبارت موجود در شرط به مقدار true فرستاده می شود. در نتیجه کنسول پیام "سلام تیمور!" .

عبارت else if... (شرایط متعدد)

نحو:

If (شرط 1) (گزاره های 1) else if (شرط 2) (گزاره های 2) else if (شرط 3) (گزاره های 3 //...) else if (شرطN) (گزاره های N) else (گزاره هایی که اجرا می شوند اگر هیچ یک از شرایط درست نیست یا به این مقدار داده نشده است)

عملگر شرطی (سه تایی) (?:)

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

نحو:

وضعیت؟ بیان1: بیان2

عملگر سه تایی از سه عملوند تشکیل شده است که با استفاده از نمادها از هم جدا می شوند؟ و: . شرط عملگر سه تایی در عملوند اول مشخص شده است. همچنین می توان آن را در پرانتز قرار داد. اگر شرط درست باشد یا به این مقدار ریخته شود، عبارت 1 اجرا می شود، در غیر این صورت عبارت2 اجرا می شود.

مثلا:

(تعداد > 10) console.log("عدد بزرگتر از 10 است!") : console.log("عدد کمتر یا مساوی 10 است");

جاوا اسکریپت به چندین عملگر سه تایی (?:):

Var dayNumber = new Date().getDay(); روز = (تعداد روز === 0) ? "یکشنبه" : (روز تعداد === 1) ? "دوشنبه" : (روزشماره === 2) ? "سه شنبه" : (روزشماره === 3) ? "چهارشنبه" : (روز شماره === 4) ? "پنجشنبه" : (روزشماره === 5) ? "جمعه" : (روز تعداد === 6) ? "شنبه" : "روز نامعلوم هفته"؛ console.log("امروز" +day.toLowerCase() + ".");

مثال بالا، اما با استفاده از چند دستور if...else:

Var dayNumber = new Date().getDay(); if (dayNumber === 0) (day = "یکشنبه"؛ ) other if (dayNumber === 1) (روز = "دوشنبه"؛ ) other if (dayNumber === 2) (روز = "سه شنبه"؛ ) else if (dayNumber === 3) ( روز = "چهارشنبه"؛ ) other if (dayNumber === 4) (روز = "پنجشنبه"؛ ) other if (dayNumber === 5) (روز = "جمعه"; ) else if (dayNumber === 6) (روز = "شنبه"؛ ) else (روز = "روز ناشناخته هفته"؛ ) console.log("امروز است" + day.toLowerCase() + ".") ;

عبارت switch

دستور switch برای اجرای یک نسخه از دستورالعمل ها از بین چندین، بسته به مقدار عبارت طراحی شده است. انتخاب یک یا گزینه دیگر با برابری دقیق نتیجه بیان به مقدار مورد (مورد) تعیین می شود.

نحو دستور سوئیچ:

سوئیچ (عبارت) (مقدار case1: // ... دستورالعمل هایی که اگر نتیجه عبارت "value1" باشد، اجرا می شود؛ // دستورالعمل اختیاری (در صورت عدم استفاده، دستور بعدی دستور switch اجرا می شود) case value2 : // ... دستورالعمل هایی که در صورت ارزیابی عبارت به "value2" شکسته اجرا می شوند؛ // دستورالعمل اختیاری (در صورت استفاده نشدن، دستور بعدی دستور switch اجرا می شود) // ... case valueN: / / . .. دستورالعمل هایی که اگر نتیجه عبارت "valueN" باشد اجرا می شوند، شکستن؛ // دستورالعمل اختیاری (اگر استفاده نشود، دستور بعدی دستور switch اجرا می شود) پیش فرض: // دستورالعمل هایی که اگر نتیجه عبارت is not برابر است با بیش از یکی از مقادیر)

کلمه کلیدی پیش فرض اختیاری است. زمانی استفاده می‌شود که لازم است دستورالعمل‌هایی را مشخص کنیم که اگر نتیجه یک عبارت با هیچ مقدار کوچکی برابر نباشد، اجرا شوند.

عبارت break اختیاری است. طراحی شده است تا اجرای دستور switch را قطع کند و کنترل را به دستورالعملی که بعد از آن می آید منتقل کند.

به عنوان مثال، بیایید یک پیام در کنسول مرورگر در مورد تعداد آب نبات ها نمایش دهیم:

Var countCandyBoys = 1, countCandyGirls = 2, message; سوئیچ (countCandyBoys + countCandyGirls) ( مورد 1: پیام = "یک آب نبات"؛ شکست؛ مورد 2: مورد 3: پیام = "دو یا سه آب نبات"؛ شکست؛ مورد 4: پیام = "چهار آب نبات"؛ شکست؛ پیش‌فرض: message = "نه یک، نه دو، نه سه یا چهار آب نبات"؛ ) // چاپ پیام به کنسول console.log(message);

در مثال بالا، عبارت ارزیابی شده 3 است. بنابراین، عبارت عبارت = "Two or three candies" و break اجرا می شود. دستور break اجرای بیشتر دستور switch را قطع می کند و کنترل را به دستور بعدی منتقل می کند. console.log(پیام) . این یک پیام به کنسول چاپ می کند "دو سه شیرینی".

به عنوان مثال، اجازه دهید روز جاری هفته را در کنسول نمایش دهیم:

var day = ""; switch(new Date().getDay()) ( case 0: day = "Sunday"; break; case 1: day = "Monday"; break; case 2: day = "Tuesday"; break; case 3: day = "چهارشنبه"؛ استراحت؛ مورد 4: روز = "پنجشنبه"؛ استراحت؛ مورد 5: روز = "جمعه"؛ استراحت؛ مورد 6: روز = "شنبه"؛ استراحت؛ پیش فرض: روز = "روز نامعلوم هفته" ; ) console.log("Today is " + day.toLowerCase() + ".");

مثالی که از دستور break استفاده نمی کند:

varresult = "موفقیت"; سوئیچ (نتیجه) (مورد "موفقیت": console.log ("موفقیت!")؛ مورد "invalidCaptcha": console.log ("کپچای نامعتبر!")؛ پیش فرض: console.log ("خطا!")؛ )

در این مثال، عبارت switch برابر با موفقیت است. بنابراین دستور console.log("موفقیت!") اجرا می شود که پیام "موفقیت!" به کنسول اما از آنجایی که بعد از آن دستور break وجود ندارد، اجرای اسکریپت در نوع بعدی ادامه خواهد داشت. بنابراین، دستورالعمل‌ها تا زمانی اجرا می‌شوند که با شکست در مسیر مواجه شویم یا به انتهای دستور switch برسیم. در نتیجه اجرای این مثال، 3 پیام در کنسول نمایش داده می شود: "موفقیت!" ، "کپچای اشتباه!"و "خطا!" .

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

مثال تصحیح شده:

varresult = "موفقیت"; سوئیچ (نتیجه) (مورد "موفقیت": console.log("موفقیت!")؛ شکستن؛ مورد "invalidCaptcha": console.log ("کپچای نامعتبر!")؛ شکست؛ پیش فرض: console.log ("خطا!" ))

عملگرهای منطقی

جاوا اسکریپت بین عملگرهای منطقی زیر تمایز قائل می شود:

  • && - منطقی "AND";
  • || - منطقی "OR"؛
  • ! منطقی "نه".

اگر در بیان بولیاز مقادیر بولی operand1 && operand2 استفاده می شود، اگر هر یک از آنها درست باشد، نتیجه این عبارت درست خواهد بود. در غیر این صورت، مقدار این عبارت نادرست خواهد بود.

نادرست && نادرست // غلط درست && نادرست // نادرست نادرست && درست // نادرست درست && درست // درست

اگر عبارت بولی operand1 && operand2 از مقادیر غیر بولی استفاده کند، در صورتی که بتوان آن را به false تبدیل کرد، نتیجه این عبارت operand1 است. در غیر این صورت، نتیجه این عبارت operand2 خواهد بود.

5 && 0 // 0 1 && 5 // 5 "string" && undefined // undefined "string1" && "string2" // "string2"

اگر در عبارت منطقی operand1 || از مقادیر بولی operand2 استفاده می شود، اگر حداقل یکی از آنها درست باشد، نتیجه این عبارت درست خواهد بود. در غیر این صورت، مقدار این عبارت نادرست خواهد بود.

نادرست || نادرست // نادرست درست || غلط // درست غلط || درست // واقعی واقعی || صحیح صحیح

اگر در عبارت منطقی operand1 || operand2 از مقادیر غیر بولی استفاده می کند، سپس اگر بتوان آن را به true تبدیل کرد، نتیجه این عبارت operand1 است. در غیر این صورت، نتیجه این عبارت operand2 خواهد بود.

5 || 0 // 5 1 || 5 // 1 "خط" || تعریف نشده // "string" "string1" || "line2" // "line1"

اگر operand1 نادرست باشد یا بتوان آن را به آن مقدار فرستاد، عبارت بولی!operand1 به درستی ارزیابی می‌کند. در غیر این صورت، این عبارت به false ارزیابی می شود.

نادرست // true !true // false !"string" // false !5 // false"

اپراتور مشروطبه شما امکان می دهد بسته به نتیجه ارزیابی عبارت - شرط مشخص شده، بلوک خاصی از کد را رد یا اجرا کنید. می توان گفت که دستور شرطی نقطه تصمیم گیری در برنامه است، گاهی اوقات به آن دستور شاخه نیز می گویند. اگر تصور کنیم که برنامه یک جاده است، و مترجم PHPمسافری است که در امتداد آن قدم می‌زند، سپس عبارات شرطی را می‌توان به‌عنوان تقاطع در نظر گرفت، جایی که کد برنامه به دو یا چند جاده منشعب می‌شود و در چنین چهارراه‌هایی مترجم باید انتخاب کند که کدام جاده حرکت کند.

اگر بیانیه

دستور if ساده ترین دستور شاخه است.

نحو دستور if:

دستور if ابتدا عبارت شرطی مشخص شده در پرانتز را ارزیابی می کند، نتیجه این عبارت یک مقدار بولی است. اگر نتیجه درست (درست) باشد، دستورالعمل اجرا می شود. اگر عبارت به false ارزیابی شود، دستور اجرا نمی شود. یک عبارت با هر پیچیدگی می تواند به عنوان یک شرط استفاده شود.

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

کد زیر استفاده از دستور if را نشان می دهد:

if را می توان در داخل دستورات if دیگر تودرتو کرد:

توجه کن به آخرین نمونه: لازم نیست دستورالعمل دقیقاً زیر دستور if نوشته شود، اگر اندازه دستورالعمل بزرگ نباشد، می توان آن را در یک خط نوشت.

اگر غیر از بیانیه

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

نحو دستور if else این است:

عبارت else اختیاری است. بلوک عبارت واقع بعد از else به طور پیش فرض اجرا می شود، یعنی. هنگامی که عبارت شرطی در if به نادرست ارزیابی می شود. دستور else را نمی توان جدا از دستور if استفاده کرد. بلوک else فقط باید بعد از دستور if قرار گیرد، می توان آن را به عنوان عمل پیش فرض در نظر گرفت.

با کمی اصلاح مثال قبلی، می‌توانیم ببینیم که اگر شرط به غلط ارزیابی شود، دستور if else چگونه کار می‌کند:

عبارت if else را می توان تودرتو کرد. چنین عبارات شرطی تو در تو در عمل بسیار رایج هستند. اگر دستور if در بلوک if یا else تودرتو باشد. اگر کد از چندین دستور if در یک ردیف استفاده می کند، else همیشه به نزدیکترین اگر اشاره می کند:

مورد آخر برای if($a) صدق نمی‌کند، زیرا in نیست واحد داخلی، بنابراین نزدیکترین مورد به آن if($i) می شود. عبارت else در داخل بلوک مربوط به if($b) است زیرا if نزدیکترین به آن است.

otherif/else if ساخت

دستور if / else مقدار عبارت شرطی را ارزیابی می کند و یک قطعه یا قطعه دیگر را اجرا می کند کد برنامه. اما اگر یکی از چندین فرگمنت نیاز به اجرا داشته باشد چه؟ اگر باید چندین شرط را پشت سر هم بررسی کنید، ساختار elseif یا other if برای این کار مناسب است (آنها ساختار یکسانی هستند، فقط متفاوت نوشته شده اند). از نظر فنی یک ساختار مستقل PHP نیست - فقط یک سبک معمول برنامه نویسی است که از عبارات if/else مکرر استفاده می کند. این به شما امکان می‌دهد تا شرایط اضافی را تا زمانی که یک مورد واقعی پیدا شود یا به یک بلوک other دست پیدا کنید، آزمایش کنید. otherif/else if ساختباید بعد از دستور if و در صورت وجود قبل از عبارت else قرار گیرد.

در اینجا سه ​​شرط بررسی می شود و بسته به مقدار متغیر $username، اقدامات مختلفی انجام می شود.

در واقع هیچ چیز خاصی در مورد این قطعه وجود ندارد. این فقط دنباله ای از دستورات if است، که در آن هر دستور if بخشی از ساختار else از if قبلی است. برای کسانی که برای اولین بار با این شکل از نشانه‌گذاری مواجه شده‌اند و نحوه کارکرد آن برایشان چندان روشن نیست، ما همین مثال را بازنویسی می‌کنیم، فقط به شکل نحوی معادل که تودرتوی ساختارها را به طور کامل نشان می‌دهد:

منبع این مثال تعاملی در یک مخزن GitHub ذخیره می شود. اگر می‌خواهید در پروژه نمونه‌های تعاملی مشارکت کنید، لطفاً https://github.com/mdn/interactive-examples را شبیه‌سازی کنید و یک درخواست جذب برای ما ارسال کنید.

نحو

if (condition) statement1 condition عبارتی که صدق یا نادرست در نظر گرفته می شود. بیانیه 1 بیانیه ای که در صورت صدق بودن شرط اجرا می شود. می تواند هر دستوری باشد، از جمله دستورات if تو در تو. برای اجرای چند دستور، از یک دستور بلوک ((...)) برای گروه بندی آن عبارات استفاده کنید. برای اجرای هیچ دستوری، از یک دستور خالی استفاده کنید. بیانیه2 بیانیه ای که در صورت false بودن شرط و وجود عبارت else اجرا می شود. می تواند هر دستوری باشد، از جمله دستورات بلوک و دستورات if تودرتو.

شرح

چند عبارت if...else را می توان برای ایجاد عبارت if دیگری تودرتو کرد. توجه داشته باشید که هیچ کلمه کلیدی elseif (در یک کلمه) در جاوا اسکریپت وجود ندارد.

If (شرط 1) عبارت 1 else if (شرط 2) گزاره 2 else if (شرط3) عبارت3 ... else دستورN

برای دیدن این که چگونه این کار می کند، اگر لانه به درستی تورفتگی داشته باشد، اینگونه به نظر می رسد:

If (شرط 1) عبارت 1 else if (شرط 2) گزاره2 other if (شرط3) ...

برای اجرای چند دستور درون یک بند، از یک دستور بلوک ((...)) برای گروه بندی آن عبارات استفاده کنید. به طور کلی، استفاده از دستورات بلوک، به ویژه در کدهایی که شامل دستورات if تو در تو می شود، تمرین خوبی است:

اگر (شرط) (گزاره‌های 1) else (گزاره‌های2)

مقادیر بدوی بولی درست و نادرست را با درستی یا نادرستی شی بولی اشتباه نگیرید. هر مقداری که نادرست، تعریف نشده، تهی، 0، -0، NaN، یا رشته خالی ("") نباشد، و هر شیئی، از جمله یک شی بولی که مقدار آن نادرست است، در صورت استفاده به عنوان شرط، درست در نظر گرفته می شود. مثلا:

Varb = جدید بولی (نادرست)؛ اگر (ب) // این شرط صادق باشد

مثال ها

با استفاده از if...else

if (cipher_char === from_char) (نتیجه = نتیجه + to_char؛ x++; ) other (نتیجه = نتیجه + clear_char؛ )

استفاده از other if

توجه داشته باشید که سینتکس if دیگری در جاوا اسکریپت وجود ندارد. با این حال، می توانید آن را با فاصله بین else و if بنویسید:

اگر (x > 50) ( /* کار درست را انجام دهید */ ) در غیر این صورت (x > 5) ( /* کار درست را انجام دهید */ ) دیگری ( /* کار درست را انجام دهید */ )

انتساب در عبارت شرطی

توصیه می شود از تخصیص های ساده در یک عبارت شرطی استفاده نکنید، زیرا هنگام نگاه کردن به کد، انتساب ممکن است با برابری اشتباه گرفته شود. برای مثال از کد زیر استفاده نکنید:

اگر (x = y) ( /* کار درست را انجام دهید */ )

اگر تو نیاز داریبرای استفاده از یک انتساب در یک عبارت شرطی، یک روش معمول قرار دادن پرانتز اضافی در اطراف تکلیف است. مثلا:

اگر ((x = y)) ( /* کار درست را انجام دهید */ )

مشخصات فنی

مشخصات وضعیت اظهار نظر
آخرین پیش نویس ECMAScript (ECMA-262)
پیش نویس
ECMAScript 2015 (نسخه ششم، ECMA-262)
تعریف «عبارت اگر» در آن مشخصات.
استاندارد
ECMAScript 5.1 (ECMA-262)
تعریف «عبارت اگر» در آن مشخصات.
استاندارد
ECMAScript نسخه سوم (ECMA-262)
تعریف «عبارت اگر» در آن مشخصات.
استاندارد
ECMAScript نسخه اول (ECMA-262)
تعریف «عبارت اگر» در آن مشخصات.
استاندارد تعریف اولیه

سازگاری با مرورگر

جدول سازگاری در این صفحه از داده های ساخت یافته تولید می شود. اگر می‌خواهید در داده‌ها مشارکت کنید، لطفاً https://github.com/mdn/browser-compat-data را بررسی کنید و یک درخواست برای ما ارسال کنید.

داده های سازگاری را در GitHub به روز کنید

دسکتاپسیارسرور
کرومحاشیه، غیرمتمرکزفایرفاکساینترنت اکسپلورراپراسافارینمای وب اندرویدکروم برای اندرویدفایرفاکس برای آندرویداپرا برای اندرویدسافاری در iOSاینترنت سامسونگNode.js
اگر دیگریپشتیبانی کامل کروم 1پشتیبانی کامل Edge 12پشتیبانی کامل فایرفاکس 1پشتیبانی کامل IE 3پشتیبانی کامل اپرا بلهسافاری پشتیبانی کامل بلهWebView Android پشتیبانی کامل 1Chrome Android پشتیبانی کامل 18فایرفاکس اندروید پشتیبانی کامل 4اپرا اندروید پشتیبانی کامل بلهسافاری iOS پشتیبانی کامل بلهسامسونگ اینترنت اندروید پشتیبانی کامل 1.0nodejs پشتیبانی کامل بله

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

در برنامه نویسی نیز این امر بسیار رایج است. برای این وجود دارد دو عبارت شرطی، if-else و switch-case. در این مقاله در مورد دستور if-else و در مقاله بعدی در مورد switch-case به شما خواهم گفت.

نحو دستور شرطی if-elseبعد:


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

برای درک بهتر، بیایید یک مثال ساده بزنیم، ما مقدار مشخصی پول داریم و می خواهیم یک ماشین بخریم، و در اینجا بلافاصله چنین شرایطی ایجاد می شود، اگر پول کافی داشته باشیم، می توانیم این ماشین را بخریم، در غیر این صورت ما نمی تواند.

پول وار = 35000; // فرض کنید 35000 یورو داریم // ماشینی که می خواهیم بخریم 50000 یورو است. و شرایط زیر رخ می دهد اگر (پول > 50000)( document.write("ما می توانیم یک ماشین بخریم"); )else( document.write("پول کافی برای خرید ماشین نیست");

سند را ذخیره می کنیم، آن را در مرورگر باز می کنیم و می بینیم که پیام زیر در صفحه نمایش داده شده است: "پول کافی برای خرید ماشین وجود ندارد." اگر بیش از 50000 یورو داشتیم، کد از بلوک if اجرا می شد. اگر دقیقاً 50000 یورو داشتیم، پس نمی توانستیم ماشین بخریم، زیرا 50000 بیشتر از 50000 نیست. برای اینکه شرط در این مورد درست باشد، باید علامت بزرگتر یا مساوی بنویسید ( >=).

اظهار نظر! عمل منطقی برابر با دو علامت مساوی (==) نوشته می شود.. همچنین یک عملیات منطقی کمتر یا مساوی با (

استفاده از بریس های فرفری

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

مثال بالا بدون بریس های فرفری به خوبی کار خواهد کرد، زیرا هر دو بلوک هر کدام فقط یک عبارت دارند.

داخلش اگه میتونی بنویس عملیات منطقی چه ساده باشند و چه پیچیده. همچنین می توانید از عملگرهای AND (&&) و OR (||) استفاده کنید.

اظهار نظر! وجود بلوک else اختیاری است.

به عنوان مثال، اگر a برابر با b و c برابر با d باشد، پیام مربوطه را نمایش می دهیم، در غیر این صورت اگر بلوک دیگری وجود نداشته باشد، به سادگی به خط بعدی می رویم.

Var a = 4، b = 4، c = 8، d = 8; if((a == b) && (c == d)) document.write("a برابر با b و c برابر با d"); document.write ("خط بعدی کد");

بیانیه if-else if-else

بعد از بلوک if، یک یا چند بلوک if دیگر می توانند دنبال شوند و در پایان یک بلوک else وجود دارد. این زمانی مفید است که شما نیاز به استفاده از بیش از یک شرط دارید.


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

حالا بریم سراغ برنامه نویسی.

سوکت var = 2; // تعداد پریزهای خانه if(سوکت == 1)  document.write("

ما فقط می توانیم یک دستگاه را وصل کنیم

")؛ else if(socket == 2)( document.write("

ما فقط می توانیم دو دستگاه را به هم وصل کنیم

"); document.write("

مثلا تلویزیون و لپ تاپ

"); )else( document.write("

ما می توانیم همه دستگاه ها را از خانه به شبکه برق متصل کنیم

"); }

بسته به مقدار متغیر سوکت، یک یا آن بلوک کد کار خواهد کرد. همانطور که احتمالا قبلاً متوجه شده اید، اگر سوکت برابر با 1 باشد، اولین بلوک کد کار خواهد کرد. اگر سوکت 2 باشد، بلوک دوم کد کار خواهد کرد و اگر سوکت مقدار دیگری (حتی یک عدد منفی) داشته باشد، بلوک سوم کد کار خواهد کرد.

کوتاه برای if else

زمانی می توان از مخفف استفاده کرد که بسته به شرایط خاصی، متغیری بتواند مقداری را دریافت کند.


به عنوان مثال، اگر مقدار متغیر a بزرگتر از مقدار متغیر b باشد، پیام زیر را به متغیر x می نویسیم، "متغیر a بزرگتر از متغیر b است"، در غیر این صورت می نویسیم که "متغیر a کوچکتر از متغیر b است". ".

Var a = 50، b = 100، x; x = (a > b) ? "

متغیر a بیشترمتغیر ب

" : "

متغیر a کمترمتغیر ب

"; //خروجی نتیجه document.write(x);

این تمام چیزی است که می خواستم در این مقاله به شما بگویم. دستور شرطی if-else بیشتر از هر اسکریپت استفاده می شود، بنابراین دانستن و درک آن بسیار مهم است. در مقاله بعدی در مورد یکی دیگر از دستورهای شرطی switch-case به شما خواهم گفت.