خوش برگشتید.
در این ویدیو می‌خواهم ifهای تو در تو (nested if) را به شما نشان بدهم.
if مفهومِ داخلِ خودِ if تو در تو این است که یک دستور
if یک دستور دیگر قرار می‌گیرد.
حالا می‌توانید جلوتر بروید و از ساختار تو‌در‌توی if ... else if ... else صحبت کنید.
if یعنی می‌توانید یک else if دیگر و یک if داشته باشید و داخل آن یک قرار دهید، .
و در سطح بزرگ‌تر هم می‌توانید یک داشته باشید else if
همهٔ این‌ها ممکن است.
حالا بیایید ببینیم این در مثال کوچک ما که از کاربر عدد صحیح پرسیده بودیم چه شکلی خواهد بود.
عدد صحیح.
فرض کنیم کاربر عدد را درست حدس زده باشد.
و حالا می‌خواهیم به او یک جایزه بدهیم.
یا شاید هم به او (مذکر یا مؤنث) جایزه‌ای بدهیم.
اینجا می‌توانیم بررسی کنیم که آیا واجد شرایط دریافت جایزه هستند یا نه.
چون ممکن است این جایزه فقط برای بزرگسالان در نظر گرفته شده باشد.
پس تنها اگر بزرگسال باشید ممکن است برنده شوید؛ برای مثال، کودکان ممکن است چیزی برنده نشوند.
برای مثال.
پس کاری که می‌توانید بکنید این است که یک دستور if را داخل همان دستور if قرار دهید.
اوکی.
پس می‌توانیم شرط مربوط به سن را بررسی کنیم.
در اینجا یک متغیر جدید ایجاد می‌کنیم.
مثلاً: int age = 0 به‌صورت پیش‌فرض.
و سپس می‌گوییم اگر age >= 18 بود، از آن‌ها آدرس‌شان را بپرس.
مثلاً: Console.WriteLine.
«لطفاً آدرس خود را وارد کنید تا بتوانیم جایزه را برایتان ارسال کنیم.» — اوکی؟
این یک دستور (statement) است که اضافه می‌کنیم.
اجازه بدید مطمئن شم که در پایانِ عبارت نقطه‌ویرگول (;) داریم.
و بعد از کاربر آدرس را می‌پرسیم.
با Console.ReadLine() هر آنچه وارد کنند را در رشتهٔ دیگری به نام address ذخیره می‌کنیم.
address.
بعداً دربارهٔ مفهوم scope هم صحبت خواهیم کرد.
خیلی مهم است.
اما قبل از آن بیایید این قسمت را ببینیم.
پس ما سنِ کاربر را نمی‌دانیم.
بنابراین از کاربر می‌پرسیم سنش چقدر است.
برای این کار از Console.ReadLine() استفاده می‌کنیم.
و بعد آن ورودی را تبدیل می‌کنیم.
در واقع آن را اینجا می‌گذاریم.
آن را به یک عدد صحیح تبدیل می‌کنیم.
parse یعنی با استفاده از — همان‌طور که قبلاً دیدیم.
پس هر چیزی که کاربر وارد کرده را پارس می‌کنیم.
و باید به او بگوییم: «لطفاً سن خود را وارد کنید.»
و اکنون سن‌شان را بررسی می‌کنیم.
اگر سن ۱۸ یا بیشتر بود، از آن‌ها آدرس خواسته می‌شود.
و هر چیزی که وارد کنند در متغیر address ذخیره می‌شود.
اوکی.
این فقط برای نشان دادن این است که می‌توانید یک if را داخل if دیگری داشته باشید.
حالا بیایید این را اجرا کنیم.
لطفاً یک عدد صحیح وارد کنید.
من مثلاً ۰ را وارد می‌کنم — برنامه می‌گوید «اعداد برابرند».
لطفاً سن خود را وارد کنید — ۱۸.
«لطفاً آدرس خود را وارد کنید تا بتوانیم جایزه را برایتان ارسال کنیم.» — اوکی؟
آدرس: 1000.
همین، تموم شد.
الان این آدرس داخل یک متغیر ذخیره خواهد شد.
و تقریباً همین بود.
حالا نکتهٔ جالب این است که می‌توانیم یک بلوک else هم داخل این داشته باشیم.
بلوک if داخلی فقط زمانی اجرا می‌شود که عدد را درست حدس زده باشیم.
پس اگر عدد را درست حدس نزنیم، این هرگز اجرا نمی‌شود.
کل این بخش از کد اجرا نخواهد شد و مستقیماً به پیام «اعداد برابر نیستند» می‌رود.
اما اگر عدد را درست حدس زده باشیم و بالای ۱۸ باشیم، از ما دربارهٔ آدرس سؤال خواهد شد.
اگر بالای ۱۸ نباشیم، می‌توانیم چیزی مثل «متأسفیم، به‌خاطر سنِ شما نمی‌توانید جایزه را دریافت کنید» نمایش دهیم.
سن.
خیلی ناراحت‌کننده است، اما همین است.
خب، حالا دوباره اجراش کنیم.
بیایید عدد را حدس بزنیم، درست؟
خب، حدس بزنید چه شد؟
ما عدد را می‌دانیم — ۰ — برنامه می‌گوید «اعداد برابرند.»
لطفاً سن خود را وارد کنید.
فرض کنیم ۱۳ را وارد کنیم.
«متأسفیم، به‌خاطر سنِ شما نمی‌توانید جایزه را دریافت کنید.»
افسوس.
خب، حالا ifهای تو‌در‌تو را دیدید.
و این می‌تواند چند لایه‌ای باشد.
می‌توانید جلوتر بروید و بررسی‌های دیگری اضافه کنید.
مثلاً اگر آدرس دقیقاً مقدار مشخصی بود، کاری انجام بده.
می‌توانید به هر تعداد لایه که بخواهید بروید.
با این حال، خوب نیست که خیلی عمیق تو‌در‌تو شود (به‌خاطر خوانایی کد).
اما برخی از مدل‌های زبانی بزرگ دقیقاً به‌نوعی همین‌طور عمل می‌کنند.
خب، این هم پایانِ این ویدیو بود.
می‌بینمتون در ویدیوی بعدی.