>> DOUG LLOYD: Dobrze, więc porozmawiajmy o pętlach.
Więc pętle są całkiem ciekawie ponieważ pozwalają program
wykonanie linii kodu nad i kółko.
Wielokrotnie bez konieczności kopiowania i wklej lub w inny sposób je odtworzyć.
Istnieją trzy główne rodzaje pętli zobaczysz.
Prawdopodobnie będziesz mieć okazję do korzystania każdy z nich w miarę postępów CS50.
Niektóre z tych pętli są dość znajome od podstaw,
więc ponownie, jak zrobiliśmy to z warunkowych, umieścimy je obok siebie
jeśli istnieje analogia możemy wyciągnąć.
>> Pierwszy jest zawsze od zera, które porównuje do while (true).
To jest to, co nazywamy nieskończoną pętlę.
Linie kodu pomiędzy kręconymi szelki, podobnie jak kawałki układanki
że pasuje wewnątrz C z wiecznie blokować,
wykonywany od góry na dół, kółko, kółko,
na zawsze.
Po tym wszystkim, jeśli przywołujemy nasze omówienie wyrażeń logicznych,
prawda jest zawsze prawdziwe.
Więc jeśli robimy coś tak długo, jak prawdziwe
jest true-- to wydaje się trochę silly-- prawda zawsze jest to prawda, więc to zawsze uruchamiane.
To będzie działać zawsze i wieki, aż
znaleźć sposób, aby wydostać się z niej z oświadczenie break, który ponownie,
widzieliśmy jakiś czas temu Mówiliśmy o przełączniku.
>> Lub w inny sposób po prostu zabić nasze Program, który nawiasem mówiąc,
Jeśli kiedykolwiek znajdziesz się w Sytuacja z nieskończonej pętli
i nie wiesz jak zatrzymać program z systemem.
Wystarczy nacisnąć kontrolę i C oraz że zabije program dla Ciebie.
Ale to znów jest zwana pętla nieskończona.
Jest to pętla, która będzie trwać wiecznie.
Teraz, gdy pętle nie są zawsze nieskończona, bo również
możemy wymienić Boolean Wyrażenie z czymś
trochę bardziej użyteczne niż tylko prawda.
Więc oto inny przykład.
Podczas gdy niektóre Boolean Wyrażenie i nawiasy klamrowe.
To dość dużo analogiczne powtarzać do momentu, od podstaw.
Mimo, że w drugim, będę wyjaśnić różnicę.
>> Więc w C, w przypadku wyrażenia logicznego wewnątrz pętli while
wartość true, linii Kod między nawiasy
wykonywany w kółko i ponad dopóki wyrażenie Boolean
wartość false.
Tak na przykład, może mieć jakiś licznik.
Tak mówią ci na początku pętla powiedzieć, int x równa się zero.
Podczas gdy x jest mniejsza niż 100, zrobić kilka rzeczy wewnątrz tego nawiasy,
to w końcu swojej pętli, można powiedzieć, X plus plus, jesteś zwiększając x.
Ostatecznie x dostanie do 100 i będziesz
zatrzymać, ponieważ warunkiem x jest mniejsze niż 100
nie będzie prawdziwe, najszybciej x jest równy 100.
100 nie jest mniejsza niż 100.
>> Teraz nieco myląco, zachowanie bloku zarysowanie jest odwrócona.
Więc być bardzo ostrożni, jeśli jest to Twój pierwszy wypad do korzystania z pętli.
Zasadniczo, powtórz aż do bloku w Scratch
będzie powtórzyć coś w kółko, kółko,
do wypowiedzi, Boolean Wyrażenie w sześciokąt jest prawdą.
Więc będzie to robić że dopóki nie jest to prawdą.
Tymczasem pętla while będzie nadal to robić, dopóki nie jest fałszywe.
Tak więc są one bardzo podobne, ale jest to małe rozróżnienie tylko
uważać, zwłaszcza jak sobie Twój pierwszy krok od przejścia
do zera do ok.
Kolejnym rodzajem pętli jest rzeczywiście bardzo podobna.
To się nazywa robić podczas pętli.
Ta pętla wykona wszystkie linie kodu pomiędzy nawiasy raz,
i wtedy będzie to sprawdzić wyrażenia logicznego.
Jeśli wyrażenia logicznego wartość true,
to będzie wrócić i powtórzyć że proces w kółko
i ponad do Boolean wyrażenie na false.
Więc to pętla, w przeciwieństwie do pętli while, jest Idealny do co najmniej jeden raz.
To może być bardzo przydatne.
>> Wreszcie, mamy dla pętli.
Na pętli są rodzajem składniowo nieatrakcyjne
i nie wiele się dzieje tu, więc pokrywa się ze mną
jak staramy się przełamać te kawałki siebie.
Ogólnie rzecz biorąc, przypadek użycia z pętli for jest ci
chcą powtórzyć coś określoną liczbę razy.
W tym przykładzie tutaj, Mam powtarzania bloku
od podstaw, co jest analogiczne do pętli for
w C, powtarzając coś 10 razy.
A do pętli na nie lewica, która
to cztery pętla by zrobić to samo.
Byłoby to 10 razy.
Licząc od zera, mamy przyrost każdym przejściu pętli.
A my dalej robić, że dopóki nie jest mniejsza niż 10.
>> Więc co się dzieje?
Jest całe mnóstwo kodu tam.
Miejmy rozbicie go to, co dzieje się krok
po kroku jak przekopać się przez pętli for.
Pierwszą rzeczą, która się stało, zmienna licznika jest centrum.
Wszystko po lewej stronie, że pierwszy średnik w nawiasach
jest wykonywany.
W tym przypadku jest mówiąc: int i jest równa 0.
Deklarowanie nową zmienną o nazwie i, że zmienne to typ całkowity
i mówimy wartość środka że zmienna będzie zero.
>> Druga rzecz, którą robimy jest my natychmiast ocenić
wyrażenia logicznego.
Wyrażenie logiczne jest w średniej z dwóch średnikami.
I ma mniej niż 10.
To prawda tutaj, prawda?
Po prostu powiedział, że jest równa zero, a więc 0 jest mniejszy niż 10,
i tak, że warunek jest prawdą, a my teraz
przystąpić do wykonania tej pętli.
Jeśli to było fałszywe.
Jeśli, na przykład, że zamiast i równa 0 nie powiedziałem i równa się 15,
int i jest równa 15.
Oraz 15 nie jest mniejszy niż 10, tak że nigdy nie wejść do ciała pętli
ponieważ wyrażenia logicznego nie oceni się fałszywe.
>> Po tym, jak przejść od góry do dołu, mamy do czynienia, że ​​zamknięcie nawias klamrowy,
trzeci co się dzieje.
Zmienna licznika jest zwiększany, a raczej linie
kodu oświadczenia po Drugi średnik wewnątrz z
pętli nawiasach jest wykonywany.
Więc zaczynamy od mówiąc: int i jest równa 0.
Następnie sprawdzamy, czy Boolean wyrażenie jest prawdziwe.
0 jest mniejsza niż 10, więc jest to prawda.
Tak więc mamy zamiar kontynuować do ciała pętli.
Będzie się działo wewnątrz pętli, oraz gdy mamy do czynienia, że ​​zamknięcie kręcone
klamra, następna rzecz, którą zrobić, to powiedzieć, ja plus plus.
Byłem zera teraz ja jeden.
Następnie, ponownie sprawdzić wartość wyrażenia logicznego w środku.
Jednym z nich jest mniejsza niż 10.
Będziemy więc przejść przez to przetworzyć ponownie i ponownie.
Dojdziemy do zamknięcia nawias klamrowy ponownie.
Będziemy inkrementacja i od 1 do 2, i od 2 do 3.
I tak dalej, i tak dalej, i tak dalej, aż W końcu jest wartość staje się 10.
Czy 10 mniej niż 10?
Nie.
Licząc od 0, przeszliśmy przez 10 iteracji pętli.
Mamy powtarza się 10 razy, po prostu jak my w bloku Scratch.
I tak to jest w zasadzie Proces czterech pętli.
>> Teraz pozbawianie rzeczywisty kod i wprowadzenie go
w ciągu zaledwie kilku podstawowych stwierdzeń ogólnych.
Oto co się dzieje.
Wszystkie dane przedstawione w rozpocząć są realizowane w pierwszej kolejności.
Możesz mieć więcej niż jeden.
Następnie wyrażenie logiczne jest zaznaczone.
Jeżeli wyrażenie jest prawdziwe, wykonanie ciału pętli jeden raz.
Jeśli wyrażenie false, skończymy.
Nie wykonać polecenie ciało pętli w ogóle.
Po tym jak wykonał Ciało pętli jeden raz,
my wtedy robić to, co jest w część nie przyrostu.
Który zwykle będzie coś takiego jak ja plus plus
czy coś takiego, że modyfikuje zmienną licznika.
Następnie, po zwiększamy, że sprawdź ponownie wyraz
i powtórzyć te czynności w kółko i ponad dopóki wyrażenie jest
nie prawda.
>> Więc jakie są przypadki użycia dla pętli?
Użyj użyć pętli while, kiedy chcesz pętla powtórzyć
nieznaną ilość razy, ale to prawdopodobnie nie może uruchomić wszystkich.
Naprawdę Typowym przykładem chwilę pętli używany
jest, aby uruchomić przepływ sterowania na grę.
Możesz nie wiedzieć, jak długo użytkownik będzie grać,
ale chcesz zachować robi to samo.
Aktualizacja stanowiska różne duchy na płycie.
Chcesz zachować rzeczy ruchomych w każdym momencie
ale nie wiem kiedy Użytkownik ma zamiar zatrzymać odtwarzanie
lub gdy jadą zabraknie życia.
Więc pętli while jest naprawdę na coś takiego.
To dobry przypadek użycia.
>> Dla robić podczas pętli, to jest dość podobna.
Chcesz pętla powtórzyć nieznany kilka razy, ale co najmniej raz.
Można to wykorzystać do gry też, ale bardzo powszechne przypadek użycia
jest monitowania użytkownika do wejścia.
Ogólnie rzecz biorąc, można powiedzieć coś tak, daj mi dodatnia,
i można umieścić, że wewnątrz zrobienia pętli while.
Więc to zawsze zapytać ich w najmniej raz na dodatnia.
Jeśli dają ci dodatnia, możesz wyjść z pętli.
Możesz być zrobione.
Wyrażenie Boolean w a jednocześnie nie może być fałszywe.
>> I nie zadać je ponownie.
Jeśli daje liczbę ujemną gdzie oni wpisać jakieś słowo lub coś, co jest
nie bardzo przydatne Ci, możesz użyć
czy pętla wrócić i zrobić to znowu i znowu i znowu.
Na pewno warto zapytać im dać ci numer raz,
ale nie wiem, jak wiele razy Po tym może być szkodnikami.
A więc zrobić, gdy jest to świetny wykorzystanie przypadku monitowania użytkownika do wejścia.
I pętli użyć Sprawa jest zazwyczaj, gdy
chcesz powtórzyć pętlę liczba dyskretnych czasach,
choć może nie wiedzieć, ile razy
moment program jest skompilowany.
>> Tak na przykład, może masz program w którym pyta użytkownika o numer.
I wprowadź 100.
I wówczas na pętli będzie w tym przypadku prowadzony 100 razy.
A może wprowadzić 1000 w programie
a następnie uruchomić pętli 1000 razy.
Jest to określona ilość razy.
Nie muszą one Wiesz, co to numer
Moment jest program jest kompilowany.
To nie jest tak pętli while gdzie może być nieskończony.
To raczej wielu że po prostu nie wiem.
Teraz chociaż mam przedstawione wszystkie te przypadki użycia,
należy wiedzieć, że w dość znacznie każda okoliczność,
można zamienić wszystkie trzy z tych pętli.
Możesz użyć pętli for, gdzie w przeciwnym razie używać pętli while.
Możesz użyć pętli for gdziekolwiek chcesz użyć robić podczas pętli i tak dalej.
To może być trochę trudne czasami, tak ogólnie to dobra praktyka
stosować się do typowego przypadku użycia.
Użyj do podczas pętli, jeśli Ciebie chciał coś raz, co najmniej.
Użyj pętli for, jeśli chcesz zrobić coś określoną liczbę razy.
Po tym wszystkim, to dlaczego nie ma trzy różne rodzaje pętli.
>> Tak więc mogą one być stosowane w odpowiednim kontekście.
Ale można zamieniać je jeśli chcesz.
Jeśli czujesz się komfortowo z pętli przy jednoczesnym i zawsze chcesz używać podczas pętli.
To jest coś, można zrobić, choć to
może być trochę składniowo trudne, gdzie na pętli
byłoby o wiele prostsze.
>> Nazywam się Doug Lloyd i jest to CS50.