خوش برگشتید.
در این ویدیو می‌خوام درباره‌ی عملگر تساوی صحبت کنم چون واقعاً مهمه که بفهمید .
چطوری کار می‌کنه
پس فرض کنیم ما دو عدد داریم.
یعنی int numOne و int numTwo رو داریم.
و حالا می‌خوایم ببینیم آیا برابر هستند یا نه.
یعنی آیا دو عدد مختلف از نظر محتوایی برابرند—محتوایی که درونشون هست.
در این مثال برابر خواهند بود چون numOne صفره و numTwo هم صفره.
پس چطور اینو چک می‌کنیم؟ می‌تونیم به این صورت عمل کنیم.
می‌تونیم یه بولین داشته باشیم.
پس bool isEqual.
و بعد فقط numOne رو با numTwo مقایسه می‌کنیم.
و از این دو علامت مساویِ پشت‌سرهم (==) استفاده می‌کنیم.
این کار اون دو عدد رو بررسی می‌کنه و می‌بینه آیا یکی هستند یا نه.
اگر یکی باشند، برابر با می‌شه. true
و اگر برابر نباشند، برابر با می‌شه. false
اوکی.
حالا یه حالت دیگه هم هست که «نابرابر» رو چک می‌کنه — که با علامت تعجب و (!=).
بعد علامت مساوی نوشته می‌شه
این کار بررسی می‌کنه که آیا اون دو مقدار نابرابر هستند، یعنی
محتوای یکسانی ندارند.
پس این عبارت در اینجا خواهد بود.true
و این یکی درست نخواهد بود چون num1 و num2 هر دو صفر هستند.
پس این یکی true خواهد شد چون صفر برابر صفر است.
false و این یکی خواهد بود زیرا صفر با صفر نابرابر نیست.
اما این (عبارت) سعی دارد بررسی کند که آیا آن‌ها نابرابرند یا نه.
پس اگر نابرابر باشند، این عبارت true خواهد بود.
ولی اگر برابر باشند، آن عبارت false خواهد شد.
می‌بینید، علامت تعجب در واقع نقش نفی‌کننده دارد.
یعنی «مساوی را نفی کن».
یعنی: آیا برابر نیستند؟
حالا فرض کنیم می‌خواهید بررسی کنید دو عدد برابرند یا نه.
می‌توانید بنویسید مثلاً numOne == ...
و حالا کمی جلوتر بریم و از استفاده کنیم.Console.ReadLine
سپس هر چیزی که کاربر وارد کرده را به تبدیل می‌کنیم.int
یعنی int.Parse(...).
و داریم ورودی کاربر را می‌کنیم.parse
و اگر عددی که کاربر وارد کرده همان عددی باشد که کامپیوتر (به‌عنوان مثال numOne) دارد،
آنگاه می‌گوییم «اعداد برابرند».
مثلاً با Console.WriteLine می‌گوییم: «Numbers are equal».
چیزی مثل «عدد را حدس زدید»، درسته؟
می‌تونید از این یک بازی کوچک بسازید.
و توصیه می‌کنم خودتان هم این بازی کوتاه را امتحان کنید.
در این زمینه می‌خوام یه چیز جالب بهتون نشون بدم.
و اون هم اینه که چطور بقیه‌ی کد رو کامنت کنید.
پس می‌گم می‌خوام همه‌چیز تا این نقطه رو کامنت کنم.
خب، چطور این کارو کردم؟
ترفندش استفاده از کامنت چندخطیه.
یعنی از /* استفاده می‌کنید — slash و سپس star — که شروع کامنت رو مشخص می‌کنه.
می‌بینید همه‌ی کد سبز می‌شه که یعنی اون بخش کامنت شده است.
پس هنگام کامپایل، کامپایلر اون قسمت رو در نظر نمی‌گیره.
و اینجا هم می‌بینید که کجا تموم می‌شه (پایان کامنت).
بنابراین همه‌چیز بعد از اون دیگه جزو کامنت نیست.
Console.ReadKey پس این هنوز اجرا خواهد شد.
پس فعلاً اون رو کامنت می‌کنم.
همچنین یه بلوک else اینجا اضافه می‌کنم که می‌گه «اعداد برابر نیستند».
(اعداد برابر نیستند)
و شاید به کاربر هم بگیم که باید یک عدد وارد کنه.
پس می‌نویسیم Console.WriteLine: «لطفاً یک عدد صحیح وارد کنید» — و بذارید اجراش کنم تا نشون بدم چطور کار می‌کنه.
حالا می‌نویسه «لطفاً یک عدد وارد کنید» و من ۵ رو وارد می‌کنم.
و برنامه می‌گه «اعداد برابر نیستند».
بذار دوباره اجرا کنم.
این‌بار ۰ رو وارد می‌کنم.
و می‌گه «اعداد برابرند».
پس این همون کاریه که علامت == براتون انجام می‌ده.
این بررسی می‌کنه که عبارت سمت چپ و عبارت سمت راست آیا یکسان هستند یا نه.
پس باید خیلی مواظب علامت‌های مساوی باشین چون می‌تونن خیلی سریع باعث خطا بشن.
خودم قبلاً خطاهایی داشتم که فراموش می‌کردم از == استفاده کنم.
در این مثال خاص مشکلی پیش نیومد.
برنامه خطا نداد.
اما معمولاً اگر فراموش کنید ممکنه کامپایلر هم متوجه نشه و باگ ایجاد بشه.
یک علامت مساوی (=) برای انتساب مقدار استفاده می‌شه.
مثلاً اینجا می‌گیم صفر به متغیر numOne اختصاص داده می‌شه.
اما دو علامت مساوی (==) برای مقایسه‌ی سمت چپ و راستِ عبارت استفاده می‌شه.
و اگر برابر باشند این عبارت true خواهد شد.
در نتیجه مقدار true داخلِ اون بولین ذخیره می‌شه.
اوکی.
پس این اساساً فرق اصلی بین این دو است.
ما همچنین علامت نابرابر (!=) رو هم دیدیم.
که در واقع...
این ترکیبِ علامت تعجب و مساوی (!=) است.
خب، این هم پایان این ویدیو بود.
تو ویدیوی بعدی می‌بینمتون.