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.