>> Spreker 1: Veronderstel nou dat ek wou Krap te gee die vermoë
nies as well.
Wel, my eerste instink sou wees, soos voorheen, om 'n
blok, noem dit nies.
Spesifiseer dat ek wil spesifiseer met 'n aantal hoeveel keer
Kras moet nies.
Daarna kliek OK.
Laat my skuif dit oor aan die regterkant myself te gee meer ruimte.
>> En dan laat my gaan weer te herhaal, oorheersende die standaard 10 met n.
Laat my gaan na die verklaring sê en sê nie "hallo", maar
"Achoo" vir 'n sekonde.
Dan neem 'n oomblik se uitstel.
En dit is dit.
>> Nou het ek 'n blok genoem nies, sowel as 'n blok genoem hoes.
Sodat nou as ek wil Krap hoes en nies, ek kan eenvoudig spesifiseer 'n
nies onder sy hoes.
Drie keer, sê.
Klik op die groen vlag, en ek sien inderdaad, hoes, hoes, hoes.
Gevolg deur achoo, achoo, achoo.
My mees realistiese nies tot op datum.
>> Nou sien iets wat sleg oor hierdie ontwerp.
Selfs al het ek nie blatante dubbele enige stukke van die legkaart, ek
beslis gesleep en laat val mooi baie dieselfde stukke van die legkaart, gee
die een funksie 'n steeds so effens ander naam as die ander, nies
versus hoes.
So, dit is 'n geleentheid vir factoring uit 'n paar algemene kode.
Inderdaad, neem kennis van die enigste verskil tussen hoes en nies is dat 'n mens
het Scratch gesegde "hoes," het die ander wat sê: "achoo."
>> So kan ons nie een of ander manier te veralgemeen hierdie kode in so 'n manier dat ons eenvoudig
spesifiseer watter woord wat ons wil te krap om te bly?
En afhangende van die woord, dit sal effektief 'n hoes of wees
dit sal 'n nies wees.
So laat ons gaan voort en doen dit.
Kom ons maak 'n derde funksie en noem hierdie een, "sê nie." en ek wil dit
aanvaar, nie net 'n nommer, maar hierdie keer 'n string, andersins bekend as 'n
woord of frase.
>> And we'll call this "word."
En hoeveel keer moet ek wil hierdie woord te sê?
Wel, laat ons 'n aantal spesifiseer, noem dit weer n.
En net hierdie blok meer te maak leesbare, laat my voort te gaan en voeg 'n
etiket met die naam "tye." Sodat wanneer jy lees hierdie blok van links na regs, is dit
sê letterlik "sê woord n ​​keer."
>> Laat my voort te gaan en kliek OK nou.
En nou, laat my hierdie blok te implementeer, weer met behulp van 'n herhaling blok.
Spesifiseer dat ek wil dit n keer te herhaal.
Spesifiseer dat ek wil sê iets vir 'n sekonde.
Maar eerder as iets hard gekodeer in hierdie funksie, laat se plaas drag
en laat die Woord wat geslaag in
Kom ons dan wag vir 'n sekonde.
So nou laat my terug te gaan en te verfyn my implementering van hoes en nies,
in so 'n manier dat die twee funksies noem dit die derde funksie, en daardeur
die vermindering van die bedrag van dupliseer kode.
So laat ons letterlik gooi hierdie kode weg.
Kom ons gooi die kode weg.
En hierdie keer, laat ons net spesifiseer dat hoes moet deur geïmplementeer word
sê: "hoes" Sommige getal n keer.
>> En so, kan ons teruggaan en weer te implementeer nies, sodat dit gebruik
sê met 'n argument van "achoo" n keer.
So, wat het ons gedoen?
Ons het die kode wat erken gemeenskaplik aan beide ons hoes en ons
nies funksies, ingereken dit uit in 'n nuwe derde funksie, en dan
herskryf hoes en nies in sulke 'n manier wat hulle noem dat die
derde en nuwe funksie.
>> Nou het ons absoluut gemaak, die hele program meer ingewikkeld as wat dit
regtig nodig het om te wees.
Na alles, aan die einde van die dag, het ons moet net Scratch drie keer om te hoes
en nies drie keer.
En ons kon gedoen het wat met net 'n paar stukke van die legkaart.
Maar as ons programme kry veel meer ingewikkeld, en ons programme meer
gesofistikeerde, hierdie tegniek van factoring uit gemeenskaplike kode, of
hiërargiese ontbind jou program in kleiner funksie, wat elk
noem ander funksies, is 'n baie dwingende tegniek.
Want dit sal verseker dat jou kode, selfs as dit kry meer kompleks is, bly
maklik om te werk en ook baie leesbare.
>> Inderdaad, oorweeg die eindresultaat.
Wanneer die groen vlag word gebruik, hoes drie keer, nies drie keer.
En dit is dit.
Trouens, kom ons doen presies dit.
Klik op die groen vlag en ons kry 'n hoes, twee hoes, drie hoes.
Gevolg deur, ons hoop, een keer nies, twee nies, en 'n derde nies.
Hoop hy kry beter gou.