[? DAN ARMADARAS:?] Hi, Nina [? Dan Armadaras?].
Leo, tunakwenda kuwa na kuangalia debugging.
Si tu ni sisi kwenda majadiliano juu ya baadhi ya mbinu,
lakini pia tunakwenda kuangalia baadhi ya vipengele zilizomo
ndani ya CS50 IDE kwamba kuruhusu kwa urahisi Debug mpango.
>> Mfano mmoja tu wa kitu ambacho kinaweza kwenda vibaya
na ni kweli kitu kwamba tumekuwa tayari kuona mbele.
Katika kesi hiyo, hii ni C mpango kwamba kupokea integer kutoka kwa mtumiaji,
mgawanyiko ni wawili na hutoa pato nyuma kwa mtumiaji.
Sasa kutokana na kile tumeona mapema katika mihadhara,
Tunajua kwamba hii itakuwa kweli kusababisha aina maalum ya matatizo ya mgawanyiko
wakati tuna idadi isiyo ya kawaida.
>> Hasa, tutaweza tu kutupa mbali chochote baada ya uhakika decimal.
Sasa, tunajua kwamba hii hutokea kwa kuwa kesi.
Na kama sisi kukimbia, tunaweza kuthibitisha tuhuma zetu, kwanza, na kuandaa.
Na kisha, kwa kuendesha na kuingia idadi isiyo ya kawaida.
>> Hii ni kitu kipya.
Lakini hii ni kweli Mfano wa mdudu kwamba
unaweza kuwepo ndani ya mpango kubwa kwamba inakuwa vigumu kufuatilia chini.
Hata ingawa sisi kujua nini suala ni, crux ya kweli ya jambo
yapate kujaribu kutambua hasa ambapo kosa hutokea,
kutambua nini tatizo ambalo ni, na kisha kurekebisha hayo.
Hivyo kutoa hii kama mfano ya nini kinaweza kuwa kitu
kwamba sisi tayari kujua lakini inaweza kuzikwa ndani ya mambo mengine ya kanuni.
>> Hivyo kufungua chanzo hiki mengine kificho faili kama mfano,
tatizo hili mgawanyiko ni sasa sehemu ya mpango kubwa.
Bado inaweza kuwa ni kidogo kidogo contrived, na sisi
kuwa na uwezo wa urahisi kutambua hilo, hasa
tangu sisi ni kujadili tu hii.
Lakini tunaweza kufikiri kuwa hii Tatizo unaweza kuwepo kwa kiwango kikubwa.
>> Kama mimi kukusanya hii na sasa kukimbia, kuingia idadi isiyo ya kawaida,
tunaweza kuona kwamba hatuwezi kupata just pato ili tupate kuwa na matarajio.
Katika kesi hii, tunaweza kusema kwamba sisi
wanataka kuhesabu wote wa idadi kutoka kwa mmoja hadi baadhi ya idadi maalum.
Na tunaweza kuona kwamba sisi kuwa na aina ya masuala
hapa kama sisi ni outputting, tu, 0 na 1 wakati sisi kutoa mchango wa 5.
>> Kwa hiyo sisi tayari kujua kuwa kuna tatizo hapa.
Lakini hatuwezi kujua hasa ambapo suala hili kweli lipo.
Sasa ni moja ya njia ambazo tunaweza kujaribu kurekebisha hii
ni kitu ambacho tumekuwa tayari imeanzishwa kwa.
Tunaweza tu matumizi yake kwa kiwango kikubwa.
>> On line 14, tuna hii kazi printf,
ambayo inaruhusu sisi magazeti nje hali ya vipande mbalimbali wa habari.
Na hii ni kitu ambacho lazima kujiinua ndani ya mpango wako
kwa kujaribu kufikiri nini hasa ni kinachotokea katika mistari mbalimbali wa kanuni.
Hivyo hata kama hii si matokeo ya mwisho kwamba sisi kweli
wanataka kuzalisha nje ya mpango huu, sisi bado
wanaweza kuwa na baadhi utatuzi kauli ambapo sisi
Unaweza kujaribu kufikiri just nini kinachotokea ndani ya kificho yetu.
>> Hivyo katika kesi hii, mimi printf na utatuzi tag.
Katika kesi hiyo, hii ni kamba tu utatuzi
kwamba mimi nina up-kuweka hivyo kwamba inakuwa wazi kabisa katika pato la kanuni yangu
nini ni kwamba nataka kuonyesha.
Na pato hapa idadi kwamba tuna computed.
>> Katika kesi hiyo, mimi ili wanataka kujua hasa ni
kile kinachotokea kabla na baada ya baadhi hesabu maalum.
Hivyo mimi ili kutumia printf kabla na baada ya kuwa mstari wa kanuni.
Katika kesi hiyo, mimi naweza hata kufanya wazi kidogo zaidi
kwa kusema utatuzi kabla na utatuzi baada hivyo
kwamba mimi si kuwachanganya mwenyewe na mistari mingi ili kuangalia kufanana.
>> Sasa kama sisi recompile hii na kukimbia hivyo, kuingia idadi kama tano tena,
tunaweza kuona kwamba tuna sasa pato kabla na baada ya
na kupata kwamba hatujafanya wazi mgawanyiko au wazi kuwa idadi ya
kwamba sisi kweli wanataka kufanya.
Sasa katika kesi hii, hii ni si kweli pato wazi.
Ni kweli matokeo wazi kuwa tunataka nje ya mpango huu hasa.
>> Na hii ni, tena, kidogo contrived.
Lakini, pengine, moja ya mambo ambayo tunaweza kufanya kama vipimo alisema
kwamba tunataka kugawanya hii kwa 2 na kuongeza 1-- hivyo kwa maneno mengine,
tunataka pande zote up-- kisha tuweze kujua kwamba tunaweza
kufanya jambo fulani, katika kesi hii.
Sasa hapa tunajua kwamba tutakuwa na uwezo wa kuongeza 1 na idadi yetu nusu.
>> Hebu recompile hii na kuthibitisha kwamba hii
ni tabia kwa njia hiyo tunataka.
Tunaweza kuona kwamba sasa kabla kuwa, tuna namba 5.
Baada ya kuwa, tuna namba 3, ambayo kwa mujibu wa vipimo wetu,
ni nini sisi alitaka kufanya.
Lakini kama sisi kuangalia pato hapa, tunaweza
kuona kwamba tupate kuwa na mwingine mdudu kabisa, ambayo ni
kwamba sisi ni mapya kuhesabu wetu kutoka 0.
>> Sasa tena, hili ni jambo kuwa tumeona huko nyuma
na tuweze kurekebisha kwa urahisi kabisa.
Lakini katika kesi hii, sisi pia alikuwa na faida
ya kutumia kauli printf moja kwa moja ndani ya kwa kitanzi
kujua hasa ni wapi makosa ambayo yalikuwa yakifanyika.
Kauli Hivyo printf ni muhimu sana katika kusaidia
wewe kuamua wapi, hasa katika chanzo code yako,
makosa maalum linajitokeza.
>> Na pia ni muhimu kutambua kwamba, kama sisi ni kuandika kanuni,
tupate kuwa na mawazo kuhusu hali ya mpango huo.
Au tupate kuwa na mawazo kuhusu nini sehemu ya mpango
ni kweli sahihi au sio sahihi wakati baadaye kama tunajenga mpango huo
na kuifanya kuwa sehemu ya tata na mpango kubwa
kwamba tunatambua kwamba baadhi ya nyanja ya kwamba ni kweli Buggy.
>> Kutumia printf unaweza kweli kusaidia nyembamba chini na kubaini
mikoa ya mpango ambayo inaweza isiwe kuwa na tabia hasa kwa njia hiyo sisi
kutarajia, kulingana na mawazo yetu.
Lakini kuna zana nyingine inapatikana, kama vile,
kwamba kuruhusu sisi kujaribu takwimu nje ambapo makosa linajitokeza
na pia, hasa, ni mambo yanayotokea ndani ya mpango.
>> Hivyo kwa kutumia printf ni sana muhimu wakati tunataka
kutambua maeneo maalum ya mpango huo una baadhi ya mdudu.
Lakini pia inakuwa tedious baada ya muda.
Katika kesi hiyo, hii ni Mpango rahisi
na vigezo moja au mbili tu.
Na inakuwa rahisi sana kwa sisi magazeti nje thamani ya vigezo wale
katika mazingira ya mpango kubwa.
>> Lakini tuwe na tofauti mpango huo ina vigezo vingi.
Na inaweza kuwa kabisa rahisi kutumia printf
kujaribu kufanya tathmini ya kile kinachotokea Kila mmoja vigezo wale
kama mpango huo ni utekelezaji.
Kuna mpango huo upo aitwaye mpango HatiJava.
Katika kesi hiyo, moja kwamba sisi matumizi ni GNU HatiJava, au GDB,
ambayo inaruhusu sisi kukagua ndani utendaji kazi wa mpango katika zaidi
kina njia.
>> Tunaweza kweli kutekeleza GDB kutoka mstari amri
hapa kwa kifupi kuandika GDB na amri kwamba tunataka Debug.
Katika kesi hiyo, kuhesabu.
Sasa katika kesi hiyo, tunaweza kuona kwamba inatuleta haraka kwamba anasema GDB.
Na tunaweza kweli kutekeleza amri ya GDB
kwa kweli kuanza utekelezaji wa mpango, kuacha ni katika maeneo fulani,
kutathmini vigezo na kukagua vigezo kwamba
zipo katika hali mpango wakati huo fulani,
na kadhalika na kadhalika.
Ni hutoa mengi ya nguvu kwetu.
>> Lakini tu hivyo hutokea kuwa IDE CS50 pia
hutoa GUI au mtumiaji interface kwa GDB kwamba
inaruhusu sisi kufanya hivyo bila wanaohitaji amri Mpya interface chochote
au wakati wote hata.
Njia ambayo mimi wanaweza kupata kwamba ni kwa kutumia utatuzi kifungo
katika sana juu ya CS50 IDE.
Sasa katika siku za nyuma, tuna nini kuonekana ni kwamba sisi kutumia amri
mstari wa kukusanya na kisha kukimbia mpango.
>> Kifungo utatuzi gani wote wawili wa hatua hizo.
Lakini pia kuleta up HatiJava tabo juu ya haki mbali
ambayo inaruhusu sisi kukagua aina ya mali ya mpango
kama ni utekelezaji.
Kama mimi bonyeza utatuzi, katika hii kesi, ni kuleta up
tabo mpya katika console dirisha chini kabisa.
>> Na unaweza kuona kwamba tabo hii ina baadhi ya taarifa juu sana.
Na tunaweza kwa kiasi kikubwa kupuuza hii.
Lakini moja ya mambo kwamba tunataka taarifa
ni kwamba matokeo kitu kimoja kwamba sisi
bila kupata kama sisi alijaribu kukimbia kufanya juu ya C A mpango dirisha wastaafu.
>> Hapa, tunaweza kuona ni mbio Clang, na ina aina ya bendera,
na ni kuandaa count.c faili wetu, ambayo ilikuwa tabo kuchaguliwa kwa wakati
kwamba mimi kugonga utatuzi.
Hivyo hii ni muhimu sana kwa sababu sasa kwa kutumia hii ya kifungo utatuzi,
sisi wakati huo huo unaweza kukusanya na kisha kutekeleza mpango kwamba sisi kweli
unataka kukimbia.
>> Moja ya bendera kwamba ni muhimu, katika kesi hii,
tumekuwa kweli wamekuwa wakitumia kwa muda mrefu
lakini pia tu alifanya mkono baadhi kutikiswa [inaudible], ambayo
ni hii moja hapa hapa.
Katika Clang, inasema -ggdb3.
Katika kesi hiyo, ni nini sisi ni kuwaambia Clang, mkusanyaji yetu,
ni kwamba tunataka kukusanya mpango wetu.
Lakini pia kutoa kile ni ishara aitwaye maelezo
ili compiler kweli wanapata kwa habari nyingi za msingi
zilizomo ndani ya mpango huo.
>> Zaidi hasa, idadi ya kazi kwamba mimi,
majina ya kazi hizo, vigezo, aina
kwamba vigezo wale ni, na aina ya mambo mengine ambayo itasaidia HatiJava
kufanya operesheni zake.
Sasa kuna kitu kingine hiyo ni muhimu kutaja
wakati sisi ni kujadili mbio Mpango kwa njia hii.
>> Taarifa kwamba ina kweli kuletwa hadi tabo mpya katika console yetu
pamoja chini.
Hatuna tena wa kiutendaji moja kwa moja na dirisha wastaafu.
Lakini tabo hii mpya ni kweli dirisha wastaafu.
Ni tu ni maalum kwa mbio mpango huo tuna umba.
>> Taarifa kwamba chini, katika pamoja na baadhi ya pato
na Clang compiler na GDB, ambayo tunaweza kwa kiasi kikubwa kupuuza,
ni kweli inaonyesha pato la mpango wetu chini kabisa.
Sasa ni muhimu kutambua kwamba dirisha hili moja kwa kweli
nitakuonyesha pato kutoka mpango wako
lakini pia wanaweza kukubali pembejeo kwa mpango huo, pia.
>> Hivyo taarifa kwamba anasema tafadhali kuingia idadi,
ambayo ni pato sawa kwamba tulikuwa na alikuwa katika dirisha terminal kabla.
Lakini ni sasa inavyoonekana katika tabo mpya.
Naweza pembejeo idadi.
Na itakuwa kweli kazi kama tunatarajia
kuonyesha sisi utatuzi yetu, pato, pato ambayo inaweza kuwa Buggy,
kama tumeona kabla.
Na chini sana, ni kweli ina baadhi pato ziada
kutoka GDP tu kusema kwamba mpango huu amekamilisha.
>> Sasa kama wewe aliona katika hii kukimbia hasa kupitia,
haikuwa hasa muhimu kwa sababu hata
ingawa tulikuwa orodha HatiJava kuja up, hii ilikuwa bado mbio mpango.
Wakati hakuna uhakika alifanya hivyo kweli kutulia utekelezaji kwa ajili yetu
kuwa na uwezo wa kukagua wote wa vigezo zilizomo ndani.
Kuna kitu kingine kwamba tuna kufanya ili
kupata GDB kutambua kwamba tunataka kutulia utekelezaji wa mpango
na si tu kuruhusu kuendelea kawaida kama tunataka katika kesi nyingine yoyote.
>> Ili kutulia utekelezaji, katika baadhi mstari maalum,
tunahitaji kujenga nini aitwaye hatua ya mapumziko.
Na mapumziko uhakika ni urahisi sana umba katika hii CS50 IDE kwa kuchukua mouse yako
na kubonyeza moja kwa moja kwa upande wa kushoto baadhi maalum mstari idadi.
Mara baada ya mimi kufanya hivyo, nyekundu dot inaonekana, ambayo inaonyesha
kwamba kuwa mstari ni sasa hatua ya mapumziko.
>> Na wakati mwingine kwamba mimi kukimbia GDB, ni kuacha utekelezaji wakati huo kuvunja uhakika
ilipo kuwa mstari wa kanuni.
Sasa hii ni muhimu Jambo kutambua
kuwa ni si lazima kesi hiyo kila mstari wa kanuni
ni kweli kupatikana.
Kama ningekuwa na kujenga kazi hapa, kwa example-- utupu f--
na tu kufanya mstari magazeti here-- hodi world-- kama mimi kamwe kuwaita kazi hii,
itakuwa kesi hiyo, kama mimi kuweka hatua ya mapumziko hapa,
kazi kamwe kuitwa.
Na kwa hiyo, hii Hasa hatua ya mapumziko
kamwe kweli kutulia utekelezaji wa mpango huo.
>> Basi hebu kusema kwamba mimi kwa usahihi kuunda hatua ya mapumziko juu ya baadhi mstari wa kanuni
ambayo kwa kweli ni lazima ifanyike.
Sasa katika kesi hii, hii ni mstari wa kwanza katika kazi kuu.
Hivyo ni shaka kuwa kesi kwamba, kwa haraka kama mimi kuanza utekelezaji,
mstari wa kwanza kabisa utafikiwa.
GDB pause utekelezaji.
Na kisha, mimi kuwa na uwezo wa kuingiliana na HatiJava.
>> Unaweza kuweka mistari mingi kama breakpoints, kama ungependa.
Tunaweza pia kujenga line up hapa katika sehemu hii ya maadili
kwamba kamwe kufikiwa.
Na tunaweza pia kuweka moja zaidi hapa chini.
Sababu kwamba tunataka wanataka kufanya hivyo tutaweza
kwenda katika kidogo zaidi undani katika muda tu.
Hivyo kwa sasa, napenda tu afya haya ya nyongeza ya mapumziko pointi
ili tuweze kuangalia nini kinatokea wakati mimi na single mapumziko moja
hatua katika mpango wangu.
Nimekufanya baadhi mabadiliko ya mpango huu.
Hivyo nahitaji kuokoa yake.
Mimi bonyeza utatuzi ili niweze kuanza kukusanya na kisha
utekelezaji wa HatiJava.
>> Tutaona kwamba, baada ya muda mfupi, mstari kwamba sisi kuchaguliwa kama mapumziko
hatua ni yalionyesha katika njano.
Tunaweza pia taarifa kwamba katika haki juu katika utatuzi jopo
kwamba kunyamaza icon limegeuka ndani ya kidogo kucheza icon.
Hii ina maana kwamba tuna pause utekelezaji, katika kesi hii tu.
Na kupiga kifungo Play ingekuwa kuruhusu sisi kuendelea utekelezaji
katika hatua hiyo maalum.
>> Taarifa kwamba kuna wanandoa wa wengine vifungo inapatikana katika hii jopo utatuzi,
vilevile.
Hatua ya juu, ambayo inaruhusu mimi kutekeleza kwamba mstari mmoja wa kanuni
na hatua ya juu kwa kuwa mstari wa ijayo moja, ambayo, katika kesi hii,
itakuwa na maana kwamba printf Kauli ni kunyongwa.
Na itakuwa kisha kutulia utekelezaji kwenye mstari 13, kama hivyo.
>> Na pia kuna hatua ndani ya kazi, ambayo
ni muhimu kama mimi tumemuumba mengine kazi mahali pengine katika kanuni chanzo.
Na mimi nataka hatua katika kazi hizo badala ya
kutekeleza kazi hiyo kwa ujumla.
Lakini tutaangalia zaidi katika hatua ndani ya kazi katika muda tu.
Sasa angalia baadhi ya mambo mengine ambayo kweli zipo ndani ya hii jopo utatuzi.
>> Tuna jopo hili aitwaye piga stack, ambayo inaonyesha sisi
ambapo hasa sisi ni.
Katika kesi hiyo, sisi ni ndani ya ya kazi kuu.
Muswada yetu inaitwa count.c.
Na sisi kutokea kwa kuwa juu ya mstari 13, safu moja, ambayo
ni just nini mkoa yalionyesha ya chanzo kanuni inaonyesha, kama vile.
>> Sasa angalia kwamba hii pia inaonyesha chini ya kifungu cha kutofautiana ndani
wote wa vigezo kwamba zipo ndani ya kazi hii.
Ni muhimu kutambua kwamba wote wa vigezo
itaonekana katika kutofautiana hii mitaa sehemu ya ndani kazi,
hata kabla yanatokana.
Tunaweza kuona hapa kwamba tuna kutofautiana aitwaye num, ina chaguo-msingi thamani ya 0,
na ni wa aina int.
>> Sasa kabla ya sisi kweli initialize wote wa vigezo hivi,
tuko si lazima uhakika na kuona thamani ya 0.
Na kutegemea kunyonga mengine kwa kuwa kazi
na hali ya kumbukumbu yako wakati wewe kweli kuendesha mpango huu,
unaweza kupata kwamba wewe hawaoni maadili ya 0
na, badala yake, baadhi ya wengine nambari mambo.
>> Lakini msiwe na wasiwasi juu ya kwamba.
Ni si kwenda kuwa muhimu mpaka wewe kweli initialize thamani.
Sasa katika kesi hiyo, tunaweza kuona kwamba I have kazi baadhi ya matokeo.
Na mimi nina, sasa hivi, paused utekelezaji.
Lakini katika kesi hii, ni nini Mimi kwa kweli wanataka kufanya
ni kwa sasa hatua juu ya mstari huu wa kanuni ili niweze kweli
swala user kwa kuwa int kwamba tunataka kutumia katika mpango wetu.
>> Sasa katika kesi hiyo, wakati Mimi kugonga hatua ya juu, ilani
kwamba Pause au tuseme Resume kifungo imebadilika kwa hii kifungo Pause
kwa sababu kanuni hii ni kweli utekelezaji.
Kile kinachotokea sasa hivi ni kwamba ni
kusubiri kwa ajili yetu ili pembejeo baadhi ya taarifa kama tunaweza kuona na pato yetu maandishi
chini sana.
>> Hivyo sasa hivi, hii ni si kweli paused,
hata kama, aina ya, inaonekana kuwa kwa sababu hakuna kitu kinachotokea.
Lakini tu hivyo hutokea kwamba katika kesi yangu maalum kwenye mstari 13,
Mimi nina kusubiri kwa pembejeo mtumiaji.
Na hivyo GDB haina uwezo wa kukagua Mpango kama ni mbio.
>> Sasa wakati mwingine kwamba mimi kuingia baadhi input-- hivyo mimi itabidi kuingia kwamba namba 5,
kama tumeona katika past-- kugonga kurudi, na sisi
taarifa kwamba, mara moja, GDB anapo na, tena, inaonyesha mstari wa pili.
Lakini taarifa kwamba sasa, kama matokeo ya yetu inputting thamani,
tuna updated thamani kwamba ndani ya ya vigezo yetu ya ndani, ambayo
Ni muhimu sana kujua hasa ni nini idadi hiyo ilikuwa katika kumbukumbu.
>> Sasa naweza kuruhusu mpango huu kuendelea kucheza mpaka mwisho wa utekelezaji wake
kwa kupiga Resume.
Tunaweza kuona kwamba haraka sana anafanya kumaliza mpango wa utekelezaji
na pato la sawa kwamba sisi nayo kwanza, HatiJava kufunga,
na sasa mpango huu kimesimama kabisa.
>> Mimi zinaonyesha kuwa tu kwa madhumuni ya kuona nini
hutokea wakati sisi kweli kugonga Resume.
Lakini sisi kweli ni kwenda wanataka kurudi nyuma katika mpango huu
ili tuweze kujaribu Debug just nini kinatokea.
Sasa kwa kuwa mimi nina kutumia HatiJava, nipate haja hizi kauli utatuzi printf.
>> Ili niweze kuondoa yao kama nitafanya sasa tu kwenda nyuma kificho wetu rahisi
kwamba tulikuwa na wakati iliyopita.
Sasa wakati mimi kuokoa mpango na nitafanya hivyo,
itakuwa, tena, kwenda kuwa awali kuvunja hatua hiyo nilikuwa kwenye mstari 11.
Na mimi itabidi kuwa na uwezo wa kukagua vigezo wangu kama nataka kufanya.
>> Ni hivyo tu hutokea kwamba hii sehemu ni si ya kuvutia sana,
Nami najua kuwa mimi nina kwenda magazeti nje kauli hii.
Tafadhali kuingia idadi.
Na kisha, najua kwamba mimi nina kwenda kuuliza mtumiaji kwa kuwa integer.
Hivyo labda, mimi kwa kweli wanataka kuhamia yangu kuvunja hatua kidogo zaidi chini.
>> Unaweza kuondoa kuvunja pointi kwa kubonyeza, tena, moja kwa moja
upande wa kushoto wa mstari huo idadi.
Hiyo nyekundu dot kutoweka, ikionyesha kwamba kuwa hatua ya mapumziko sasa ni gone.
Sasa katika kesi hiyo, utekelezaji imekuwa umesitishwa.
Na hivyo si kweli kwenda kuanza tena katika mfano huo.
Lakini siwezi kuweka mapumziko uhakika kidogo baadaye.
>> Na wakati mimi sasa kuanza yangu kanuni, ni vitaanza na kuwaambia
hatua ya kuwa hatua ya mapumziko.
Tena, mimi kugonga Resume.
Haionekani kama kitu chochote kinachotokea.
Lakini hiyo ni kwa sababu yangu kanuni ni kusubiri kwa ajili ya pembejeo.
Mimi wataingia namba 5, hit Enter, na sasa ijayo hatua ya mapumziko utapigwa.
>> Sasa katika kesi hiyo, hii ni mstari wa kanuni
kwamba, kabla, sisi alijua kilichotokea kwa kuwa Buggy.
Basi hebu kutathmini nini kinatokea katika hasa hatua hii kwa wakati.
Wakati line ni yalionyesha, hii mstari bado kunyongwa.
Hivyo katika kesi hii, tunaweza kuona kwamba mimi kuwa na idadi, ambayo
Nina integer kuitwa num ambayo ina thamani 5.
Na mimi nina kwenda kuwa kufanya baadhi math juu ya idadi hiyo.
>> Kama mimi hatua juu ya kwamba, tunaweza taarifa kwamba thamani ya num
imebadilika kwa mujibu wa hesabu kwamba tumekuwa kweli kufanyika.
Na sasa kwamba sisi ni ndani ya hii kwa kitanzi
au kwa kuwa sasa kwa kitanzi yenyewe ni yalionyesha,
tunaona kwamba tuna mpya variable kuitwa i kwamba
ni kwenda kutumika kwa kuwa kwa kitanzi.
>> Sasa kumbuka kabla ya kuwa mimi alieleza kuwa wakati mwingine uko
kwenda kuona baadhi ya mambo aina idadi kama chaguo-msingi kabla ya idadi hiyo
au kwamba kutofautiana ni kweli initialized.
Tunaweza kuona kwamba just hapa katika kutofautiana hii
kuitwa i, ambayo ina si bado initialized
wakati wa kuonyesha.
Lakini tunaweza kuona kwamba ina baadhi ya idadi kwamba tunataka si kweli kutarajia.
>> Hiyo ni sawa.
Msiwe na wasiwasi kuhusu hilo kwa sababu tuna si kweli
initialized idadi hiyo mpaka mimi hatua ya juu ya mstari huu na thamani
i imekuwa initialized kwa thamani 1.
Hivyo kuona kwamba hiyo ni kweli kesi, hebu hatua ya juu.
Sasa tunaweza kuona kwamba kuwa mstari imekuwa kunyongwa.
Na sisi sasa ni kuonyesha mstari huu printf.
>> Na sasa tunaweza kuona jinsi maadili yetu ya i na 3 vilivyobadilika.
Hii ni muhimu sana kufanya, kwa kweli, ni hatua juu ya mistari mara kwa mara.
Na unaweza kupata nini hasa ikitokea ndani ya yako kwa kitanzi
na nini kinatokea kwa vigezo ndani ya kwamba kwa kitanzi
kama kwamba utekelezaji wa mpango hutokea hatua moja kwa wakati.
>> Sasa katika hatua hii, mimi kupitiwa juu tu ya kutosha
kwamba mimi niko sasa mwishoni mwa mpango wangu.
Kama mimi hatua juu ya kwamba, itakuwa kweli kusitisha utekelezaji
kama tumeona huko nyuma.
Napenda kuanzisha upya hii, lakini tena, hivyo niweze uhakika kitu kingine nje,
vilevile.
>> Katika kesi hiyo, ni sasa kuuliza mimi, tena,
kwa idadi, ambayo Mimi, tena, kuingia.
Lakini wakati huu, mimi nina kwenda kuingia katika idadi kubwa ili kwa kitanzi
Itakuwa iterate zaidi ya mara.
Katika kesi hiyo, mimi nina kwenda kuingia thamani ya 11.
>> Sasa tena kwa sababu Ningependa kuweka hatua ya mapumziko katika mstari 15,
itakuja kuonyesha kwamba mstari.
Tunaweza kuona kwamba wetu namba 11 ni kwa usahihi
kuwakilishwa katika vigezo yetu ya ndani.
Wanazidi juu kwamba, tunaweza sasa kuangalia nini kinatokea kwa thamani yetu ya i
kama sisi kuendelea ndani ya hii kwa kitanzi.
Anapata incremented kila sisi wakati kufikia juu ya kwamba kwa kitanzi.
>> Sasa ni moja ya mambo ambayo huenda kuwa na manufaa kwa kufanya wakati wa utekelezaji
la mpango huu ni kwa ajili yangu na kwa kweli mabadiliko vigezo midstream kuona
nini kinatokea kwa mpango wangu.
Katika kesi hiyo, naweza kweli bonyeza mara mbili thamani.
Taarifa kwamba inakuwa uwanja maandishi.
>> Sasa naweza kuingia tofauti thamani kabisa
kuona jinsi mpango wangu kutenda wakati nimekuwa iliyopita kwamba kutofautiana.
Sasa katika kesi hiyo, kutofautiana i sasa ina thamani 10.
Lakini mpango huo ni bado paused katika utekelezaji.
Wakati mimi hatua juu, naona ya kuwa thamani i, ambayo mimi aliingia kama 10,
si mkuu zaidi kuliko thamani ya num, ambayo mara husababisha kwa kitanzi
kuacha utekelezaji.
>> Sasa hiyo ni si tu sababu ni kwa nini wewe ungekuwa
wanataka kurekebisha kutofautiana katika mahali.
Wewe ili kweli wanataka kujaribu kurekebisha ili
uweze kuendelea utekelezaji wa kitanzi
au ili uweze kurekebisha baadhi thamani kabla
fika baadhi kuweka maalum ya hesabu kuwa wewe ni kuhusu kufanya.
>> Hivyo sasa kwamba sisi kweli mabadiliko thamani ya i kama mpango huo utekelezaji,
ni unasababishwa kwa kitanzi kujiondoa mapema kwa sababu, kwa ghafla, i
kilichotokea kwa kuwa kubwa kuliko thamani ya num, kwa maana ya kuwa kwamba kwa kitanzi
hawahitaji tena wauawe.
Zaidi ya hayo, ilivyotokea kwa kuwa kesi hiyo sisi iliyopita thamani ya i
wakati mstari 17 iliyohusishwa, ambayo ilikuwa hatua katika muda
kwamba kwa ajili ya utekelezaji kitanzi kwa kweli kuwa tathmini.
>> Kama mimi alikuwa iliyopita thamani ya i juu ya mstari tofauti, wanasema 19,
sisi ingekuwa kuonekana tofauti tabia kwa sababu mstari 19 ingekuwa
kuwa kunyongwa kabla kitanzi hali ilikuwa reevaluated.
Sasa katika hatua hii, mimi nina tena, mwishoni mwa mpango huu.
Na siwezi kuruhusu hili kuendelea na kuruhusu mpango wangu kujiondoa kawaida.
Lakini kuna michache ya mambo ambazo ni muhimu kuchukua
kutokana na majadiliano fulani.
Unahitaji kufanya tathmini mawazo yako mwenyewe
kuhusu jinsi kificho inapaswa tabia.
Wakati wowote unafikiri kwamba baadhi kipande wa kanuni unajua hutokea kufanya kazi,
hiyo inaweza kuwa ni bendera nyekundu kwenda nyuma na kutathmini, na kuwa na uhakika
kwamba dhana yako ya jinsi kificho inafanya kazi
ni kweli kweli kwa jinsi gani ni walionyesha katika chanzo code yako.
>> Lakini hata zaidi kwa uhakika ilikuwa, wakati sisi ni kutumia HatiJava,
unaweza kuweka breakpoints katika mistari tofauti ya maadili,
ambayo itakuwa na kusababisha HatiJava ili kutulia utekelezaji katika kila moja ya mistari hayo
ili uweze kutathmini kumbukumbu au hata mabadiliko hayo katika mahali.
Na tena, kumbuka kwamba unaweza kujenga breakpoints nyingi ili uweze
Unaweza pia kuanza utekelezaji, ruka zaidi ya sehemu kubwa ya kanuni,
na kutakuwa na moja kwa moja pause katika ijayo hatua ya mapumziko.
>> Kuna kweli zaidi juu sifa za HatiJava, kama vile.
Lakini sisi itabidi kukuelekeza kwa baadhi video baadae
ili kweli tease mbali jinsi kutumia kazi hizo hasa.
Kwa sasa, asante sana kwa kuangalia.
Na nzuri debugging bahati.