خب، حالا که سوال را نمایش می‌دهیم، بیایید ورودی کاربر را هم بگیریم و سپس
بررسی کنیم که ورودی کاربر درست است یا خیر.
خوب.
برای این کار باید کمی برنامه‌مان را تغییر دهیم.
اولین چیزی که نیاز داریم، یک متد دیگر است.
private int getUserChoiceپس یک متد دیگر در پایین ایجاد می‌کنم که نام دارد.
ایده این است که این متد انتخاب کاربر را می‌گیرد و مستقیماً به صورت int بازمی‌گرداند.
چون معمولاً چیزی که از کنسول می‌گیریم، یک رشته است.
پس آن را مطابق نیاز تبدیل می‌کنیم.
console.writeپس من به کاربر نمایش می‌دهم با و می‌گویم:
Your answer:
و در پرانتز می‌گویم شماره و یک فاصله خالی، به این صورت.
این چیزی است که می‌خواهم نمایش دهم.
سپس می‌خواهم ورودی کاربر را دریافت کنم.
console.readlineپس ورودی کاربر را می‌گیرم که خواهد بود.
و یک متغیر ایجاد می‌کنم که انتخاب کاربر را ذخیره کند.
و سپس تا زمانی که ورودی کاربر درست نباشد یا عدد مناسبی نباشد که با تعداد گزینه‌ها مطابقت داشته باشد،
این حلقه ادامه خواهد داشت.
همین کار را انجام می‌دهد.while پس این حلقه
ورودی کاربر را می‌گیرد.
و من می‌گویم تا زمانی که هر چیزی که کاربر وارد کرده است،
... این قسمت کمی پیچیده است.
پس اجازه دهید سریع آن را تایپ کنم: tryParse
و می‌گویم هر چیزی که کاربر وارد کرده و out choice.
پس منظورم این است که تا زمانی که چیزی که کاربر وارد کرده یک عدد باشد...
پس تا زمانی که این درست انجام شد، به اجرای ادامه کد می‌پردازیم.
اما اگر عدد نباشد، دوباره تلاش خواهیم کرد.
پس اگر عدد نبود، به کاربر اطلاع می‌دهیم: لطفاً یک عدد معتبر وارد کنید.
پس چیزی شبیه به «انتخاب نامعتبر» نمایش می‌دهیم.
لطفاً یک عدد بین 1 تا 4 وارد کنید، باشه؟
من اینطور استفاده می‌کنم.
پس به نوعی به صورت کدنویسی سخت مشخص کرده‌ام
چند پاسخ می‌خواهم داشته باشم.
مثلاً چند پاسخ ممکن خواهد بود.
پس می‌گویم کاربر باید چیزی بین 1 تا 4 وارد کند.
پس من همچنین باید این را بررسی کنم.
بنابراین می‌گویم علاوه بر اینکه ورودی یک عدد باشد، همچنین بررسی می‌کنم که انتخاب
کمتر از یک است یا کمتر یا بیشتر از چهار؟
تا زمانی که کاربر چیزی کمتر از یک یا بیشتر از چهار یا غیر عدد وارد کند، پیام انتخاب نامعتبر .
به کاربر نمایش داده می‌شود
و سپس واضح است که من باید دوباره ورودی کنسول را بخوانم.
پس ورودی را بازنویسی می‌کنیم و دوباره بررسی می‌کنیم، زیرا در غیر این صورت همیشه
فقط ورودی قدیمی را که داشتیم، پردازش می‌کند.
پس از کاربر ورودی جدیدی می‌خواهیم.
و وقتی پاسخ صحیح دریافت شد، انتخاب را بازمی‌گردانیم.
حالا باید یک نکته را روشن کنیم.
این روش کار می‌کند، اما در عمل برنامه‌ای می‌سازیم که کاربر را
سردرگم می‌کند.
چرا؟
به این بخش نگاه کنید.
displayQuestionدر متد write I plus one. ما نوشتیم
این باعث شد پاسخ‌ها همیشه یک شماره جلوتر نمایش داده شوند و ایندکس درست رعایت نشود.
پس وقتی انتخاب کاربر را می‌گیریم، باید یک واحد کم کنیم.
یعنی باید با ایندکس صفر تنظیم کنیم،
چون اینجا یک واحد اضافه کرده‌ایم.
پس بعد از دریافت انتخاب کاربر، باید یک واحد کم کنیم تا محاسبات درست انجام شود.
بعد از دریافت انتخاب کاربر، می‌توانیم محاسبات را به درستی انجام دهیم.
اوکی
این همان نکته اصلی است.
ایده همین است.
برای آزمایش، از متد get user choice مستقیماً داخل quiz استفاده می‌کنیم و آن را با .
شاخص جواب صحیح سوال مقایسه می‌کنیم
get user choice می‌توانیم بگوییم اگر بود،question.userCorrectAnswerIndex برابر با
می‌دانیم که کاربر پاسخ درست داده است.
در این صورت،
پیغام "درست" را نمایش می‌دهیم.
در غیر این صورت، پیغام "نادرست" را نمایش می‌دهیم.
بیایید سریع این را اجرا کنیم چون هنوز نتیجه نهایی نیست.
ببینیم چطور کار می‌کند
اما بیایید فقط امتحانش کنیم.
پس شماره پاسخ خود را وارد کنید.
فرض کنیم می‌دانیم جواب صحیح برلین است.
می‌زنیم.Enterپس عدد ۲ را فشار می‌دهیم و
و می‌بینید که درست است.
حالا دوباره اجرا می‌کنیم تا ببینیم اگر اشتباه باشد چه می‌شود.
Enterوقتی را برای پاریس می‌زنیم، می‌بینید که اشتباه است.
این هنوز شکل نهایی برنامه ما نخواهد بود، اما من این دو خط را به متد نمایش سؤال اضافه کردم
get user choiceتا بتوانیم سریع بررسی کنیم که متد ما درست کار می‌کند یا نه.
خوب.
این هم پایان این ویدیو است.
در ویدیوی بعدی، طراحی شروع صحیح آزمون را انجام خواهیم داد.
باشه.
به طوری که برنامه فقط یک سؤال نباشد، بلکه بتواند چندین سؤال را
بعد از هر پاسخ نمایش دهد
و از سؤال بعدی ادامه دهد.
پس در ویدیوی بعدی می‌بینمتان.