>> דובר: בואו ליישם תכנית ה מבקש מהמשתמש מספר שלם
אבל ממשיך שגרם להם עבור מספר שלם נוסף עד
המספר השלם שהוא חיובי.
ובכן, בואו לכתוב את זה, כולל cs50.h, כולל שעות נקודת io סטנדרטי, int
[חלל] ראשי.
עכשיו בואו למעשה נתחיל להנחות את משתמש עבור מספר שלם זה תוך כדי שמירה על
אכפת שאנחנו רוצים reprompt אותם עד ש
המספר הוא חיובי דווקא.
>> אז אני רוצה סוג כלשהו של לולאות לבנות, אבל לולאה שמבצעת ב
לפחות פעם אחת.
ולהיזכר עשה תוך הלולאה מאפשרת לנו לעשות בדיוק את זה.
בואו לקודד את זה.
>> בואו נכריז int הראשון - אנחנו קורא לזה n - שבו לאחסון
המספר השלם של המשתמש.
עכשיו בואו נעשה את הדברים הבאים.
Printf, אנא תן לי int חיובי.
בואו עכשיו לקבל את זה int באמצעות GetInt של ספריית CS50
פונקציה, n מקבל GetInt.
ועכשיו שנסיים לעשות משהו, אבל אנחנו הולכים לרוצים לעשות את זה
ואילו n הוא -
מה? -
פחות מ 1, אם אכן רוצה מספר שלם חיובי.
>> בואו נלך קדימה עכשיו ולהדפיס.
אם הכל טוב, תודה עבור int החיובי,
פסיק, שמור את הקובץ.
בואו עכשיו לקמפל ולהריץ.
>> הפוך לוכסן נקודה חיובי חיובי.
ועכשיו אני שאתבקש עבור int חיובי.
הרשה לי לשתף פעולה עם 1.
תודה על int החיובי.
>> בואו עכשיו להפעיל מחדש את התכנית ולא תשתף פעולה.
תן לי בבקשה int חיובי.
מה דעתך על 1 שלילי?
מעניין.
התכנית כבר reprompted שלי עבור int.
>> בואו נהיה קצת יותר קשה עם 0.
עדיין לא int חיובי, אז בוא לשתף פעולה והפעם
לספק, שוב, 1.
תודה על int החיובי.
>> עכשיו זה חשוב לציין שאני הכריז n משתנה על קו 6,
מחוץ לעשה תוך הלולאה.
אם הייתי במקום שהוכרז n הפנימי שלי עשה תוך לולאה, במיוחד על, נניח,
קו 10, שבו אני גם מקבל int מ למשתמש, כי n int היה רק
קיימים בתחומי המתולתל פלטה שנמצאות בשלב זה
קו 8 ועל קו 11.
>> במילים אחרות, n יהיה scoped ל בתוך שעשתה תוך לולאה.
אבל הבעיה היא שאנחנו גם רוצה להשתמש n בקו 12
בתוך המצב.
אז למרות שזה לא נראה כך די, זה הרבה יותר מכוון מאוד כי
n מוכרז מחוץ עשה תוך לולאה זו.