[? 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.