Ettekandja: Teeme rakendama programmi, mis küsib kasutajalt täisarv kuid jätkab sunnib neid teise täisarvu kuni et täisarv on positiivne. Noh, kirjutan seda, sisaldavad cs50.h, sisaldavad standard io dot h, int Peamised [kehtetu]. Nüüd tegelikult hakkavad küsima kasutaja selle täisarv, pidades samas pahanda, et me tahame reprompt neid kuni selle number on tegelikult positiivne. Nii et ma tahan mingi silmukoiminen ehitada, kuid loop, kus hukatakse kell vähemalt üks kord. Ja meenutada do-kui ahela võimaldab meil teha just nii. Olgem koodi selle üles. Vaatame kõigepealt deklareerima int - me kutsuda n - mille talletamiseks kasutaja täisarv. Olgem nüüd teha järgmist. Printf, palun anna mulle positiivse int. Lähme nüüd minema, et int kasutades CS50 raamatukogu GetInt funktsioon, n saab GetInt. Ja nüüd me oleme teinud midagi, kuid me tahame seda teha kui n on - mida? - vähem kui 1, kui me tõepoolest tahad positiivne täisarv. Lähme edasi nüüd ja välja printida. Kui kõik on hästi, tänan positiivse int, semikoolon, salvestage fail. Olgem nüüd kompileerida ja käivitada. Tee positiivset dot slash positiivne. Ja nüüd Mind ajendas positiivse int. Lubage mul teha koostööd 1. Täname positiivse int. Vaatame nüüd uuesti, see programm ja koostööd. Palun andke mulle positiivse int. Kuidas negatiivne 1? Huvitav. Programm on juba reprompted minu jaoks int. Olgem pisut raske koos 0. Ikka ei positiivne int, niiet koostööd ning seekord pakkuda jällegi 1. Täname positiivse int. Nüüd on oluline märkida, et I deklareeritud minu muutuja n real 6, väljaspool do-kui ahela. Kui ma selle asemel kuulutatud n sees minu do-kui ahela, konkreetselt, ütleme, line 10 kui ka mina saan int alates kasutaja, et int n oleks ainult eksisteerinud piirides lokkis traksid, mis on praegu line 8 ja real 11. Teisisõnu, n oleks scoped kuni sees, et do-kui ahela. Probleem on aga selles, et meil on ka soovite kasutada n in line 12 sees tingimus. Nii et kuigi see ei ole nii ilus, see on väga tahtlik et n on deklareeritud väljaspool see do-kui ahela.