1 00:00:07,370 --> 00:00:09,760 [Powered by Google Translate] 토미 MACWILLIAM : 루프에 대해 얘기할까요, 일반적인 중 하나 2 00:00:09,760 --> 00:00:13,380 프로그램은 우리가 CS50에 걸쳐 표시됩니다 구성합니다. 3 00:00:13,380 --> 00:00:15,570 우리가 수행 할 때 우리는 루프를 사용합니다 4 00:00:15,570 --> 00:00:17,200 한 번 이상 작업보다. 5 00:00:17,200 --> 00:00:20,700 예를 들어, 우리는 "안녕하세요"100 배 또는 인쇄를 인쇄 할 수 있습니다 6 00:00:20,700 --> 00:00:22,700 알파벳의 모든 글자 아웃. 7 00:00:22,700 --> 00:00:26,030 이러한 경우 모두에서, 우리는 우리가하고 싶은 게 하나 있는데 ... 8 00:00:26,030 --> 00:00:28,700 여러 번, 뭔가를 인쇄 할 수 있습니다. 9 00:00:28,700 --> 00:00:31,970 그러나, 우리는 인쇄 일마다 다를 수 있습니다. 10 00:00:31,970 --> 00:00:34,530 그래서 우리는 각각 약간 다른 뭔가를 할 수 11 00:00:34,530 --> 00:00:37,820 반복, 또는 루프의를 통해 실행합니다. 12 00:00:37,820 --> 00:00:41,280 우리는 반면, C에서 루프의 세 가지 유형이 표시됩니다 13 00:00:41,280 --> 00:00:44,700 루프, 루프에 대한, 그리고 루프 동안 마십시오. 14 00:00:44,700 --> 00:00:47,850 루프의 이러한 세 가지 유형의 서로 다른 구문을 가지고 있지만은, 15 00:00:47,850 --> 00:00:50,630 그 뒤에 아이디어는 동일합니다. 16 00:00:50,630 --> 00:00:53,930 우리는 중괄호 안에 코드의 일부 블록을 정의 17 00:00:53,930 --> 00:00:57,810 우리가 실행하고자하는, 루프의 몸이라고 18 00:00:57,810 --> 00:00:59,790 시간의 일부 번호입니다. 19 00:00:59,790 --> 00:01:03,370 본문에 사용 된 변수의 값을 변경하면, 우리 20 00:01:03,370 --> 00:01:07,570 우리의 루프은 다른 뭔가가 실행 때마다 수행 할 수 있습니다. 21 00:01:07,570 --> 00:01:10,750 우리가 쓸 수있는 루프를 통해, 우리는 또한 결정해야합니다 때 22 00:01:10,750 --> 00:01:12,400 루프 게재가 중단됩니다. 23 00:01:12,400 --> 00:01:15,650 우리가하지 않으면 우리의 믿음직한 컴퓨터가 계속됩니다 24 00:01:15,650 --> 00:01:19,040 우리가 프로그램을 죽일 때까지 루프를 실행합니다. 25 00:01:19,040 --> 00:01:22,490 스크래치에서, 우리는 반복 n 번을 사용할 수 26 00:01:22,490 --> 00:01:24,600 루프를 만들 차단합니다. 27 00:01:24,600 --> 00:01:28,200 반복 10 말했다 블록 내부의 조각의 모든 28 00:01:28,200 --> 00:01:30,130 10 번 실행됩니다. 29 00:01:30,130 --> 00:01:34,160 그리고, 우리는 그 루프 후 조각에 옮겨야 겠어요. 30 00:01:34,160 --> 00:01:38,140 우리의 정지 조건이 간단했습니다 그래서,이 블록되었습니다 31 00:01:38,140 --> 00:01:39,830 10 번을 실행합니다. 32 00:01:39,830 --> 00:01:43,900 스크래치가되도록하기 위해 C.에서이 작업을 다시 놔의 33 00:01:43,900 --> 00:01:46,920 반복 블록 내에서 조각을 실행하는 34 00:01:46,920 --> 00:01:51,180 정확히 10 배, 스크래치는 각각의 트랙을 유지해야합니다 35 00:01:51,180 --> 00:01:53,750 반복 블록의 실행. 36 00:01:53,750 --> 00:01:56,790 우리의 루프 몸 된 횟수를 추적 할 수 37 00:01:56,790 --> 00:02:00,360 실행, 그럼 내가라는 변수를 만들 수 있습니다. 38 00:02:00,360 --> 00:02:03,400 우리는 우리의 루프 이후, 제로에서 전을 시작합니다 39 00:02:03,400 --> 00:02:04,650 아직 실행되지 않았습니다. 40 00:02:10,009 --> 00:02:10,949 OK 41 00:02:10,949 --> 00:02:15,560 이제 우리는 우리의 루프를 시작하는 동안 키워드를 사용합니다. 42 00:02:20,100 --> 00:02:24,180 지금 우리는 우리의 루프가 중단됩니다 때를 알아 내야 겠지만 43 00:02:24,180 --> 00:02:26,730 의 지금이를 떠나 다음에 돌아가요. 44 00:02:30,970 --> 00:02:32,150 괜찮아요. 45 00:02:32,150 --> 00:02:35,260 우리 루프의 내부처럼, 그냥 메시지를 출력하게 46 00:02:35,260 --> 00:02:38,535 "안녕." 우리는이에 대한 printf 함수를 사용할 수 있습니다. 47 00:02:48,400 --> 00:02:49,230 괜찮아요. 48 00:02:49,230 --> 00:02:54,210 그래서 지금 우리는 루프 본문의 반복이 있다는 기록합니다 49 00:02:54,210 --> 00:02:55,750 사형이 집행 된. 50 00:02:55,750 --> 00:03:00,320 우리는 카운터에 1을 추가하거나 증가하여 해당 작업을 수행 할 수 51 00:03:00,320 --> 00:03:01,740 변수, 전. 52 00:03:01,740 --> 00:03:09,180 그 작업을 수행하려면, 우리는 내가 플러스 1 개 이상의 같다 말할 수 53 00:03:09,180 --> 00:03:16,520 단순히, 내가 플러스 플러스. 54 00:03:16,520 --> 00:03:17,320 좋아요. 55 00:03:17,320 --> 00:03:21,810 이제 우리는 때마다 우리의 루프가 실행되는 것을 알 수 있습니다 우리 56 00:03:21,810 --> 00:03:24,500 카운터 변수는 하나 밖에 없는데. 57 00:03:24,500 --> 00:03:29,410 그래서 우리는 우리가 지금까지 실행 한 정확히 얼마나 많은 반복 알아요. 58 00:03:29,410 --> 00:03:31,630 후 루프 중 하나를 반복, 우리의 가치 59 00:03:31,630 --> 00:03:34,270 , 나는 1 될 것입니다. 60 00:03:34,270 --> 00:03:37,460 이 반복 후, 2 될 것입니다. 61 00:03:37,460 --> 00:03:42,640 10 반복 한 후, 10이 될 것입니다. 62 00:03:42,640 --> 00:03:46,780 그럼, 우리가이 루프를 실행하려면 정확히 10 배 다음 63 00:03:46,780 --> 00:03:49,240 지금이 우리가 중지 할 때입니다. 64 00:03:49,240 --> 00:03:53,860 그래서 우리는 전 10 개 미만있는 동안이 루프를 실행하려면, 그리고 65 00:03:53,860 --> 00:03:57,630 즉, 바로 우리가 작성해야하는 게 동안 66 00:03:57,630 --> 00:04:02,450 10 개 미만입니다. 67 00:04:02,450 --> 00:04:06,380 이 조건은 경우에 우리가 사용하는 조건 같습니다 68 00:04:06,380 --> 00:04:07,830 다른 블록 떨어져 있습니다. 69 00:04:07,830 --> 00:04:11,690 우리 루프의 본문이 실행 된 후 프로그램 70 00:04:11,690 --> 00:04:14,690 루프 조건까지 다시 이동합니다. 71 00:04:14,690 --> 00:04:17,290 조건은 다음의 본문에 해당하는 경우 72 00:04:17,290 --> 00:04:18,990 루프는 다시 실행됩니다. 73 00:04:18,990 --> 00:04:22,190 조건이 사실 더 이상 존재하지 않을 경우, 우리의 루프는되지 않습니다 74 00:04:22,190 --> 00:04:25,700 더 이상 실행하고 코드의 다음 줄로 이동합니다 75 00:04:25,700 --> 00:04:27,876 우리의 루프 아래에. 76 00:04:27,876 --> 00:04:28,550 괜찮아요. 77 00:04:28,550 --> 00:04:30,740 그럼 두 번째 유형의를 살펴 보자 78 00:04:30,740 --> 00:04:33,000 루프에 대한 루프. 79 00:04:33,000 --> 00:04:37,310 동안 키워드 옆에 괄호에 우리는 한 가지를 가지고 80 00:04:37,310 --> 00:04:39,840 에 대한 진정한되기 위해 필요한 조건 81 00:04:39,840 --> 00:04:42,010 루프 본문을 실행할 수 있습니다. 82 00:04:42,010 --> 00:04:45,440 우리는 외부의 카운터 변수를 만들 수는 것을 의미 83 00:04:45,440 --> 00:04:48,760 몇 가지 점에서 루프를 증가시키는 기억의 84 00:04:48,760 --> 00:04:51,050 루프의 내부. 85 00:04:51,050 --> 00:04:54,320 루프에 대한의 헤더는, 반면에, 세가 86 00:04:54,320 --> 00:04:58,510 부품, 그 각각은 세미콜론으로 구분됩니다. 87 00:04:58,510 --> 00:05:01,950 첫 번째 셋째, 우리는 카운터 또는 헬퍼를 선언 할 수 88 00:05:01,950 --> 00:05:05,000 변수는 우리 루프에서 사용하고 싶습니다. 89 00:05:05,000 --> 00:05:07,350 실제로이 정말 도움이 될 수 있습니다. 90 00:05:07,350 --> 00:05:10,590 우리는 우리의 잠시 후 그 변수 i를, 필요하지 않습니다 91 00:05:10,590 --> 00:05:13,650 루프를 실행하고 있습니다, 그래서 우리는 정말 선언 할 필요는 없습니다 92 00:05:13,650 --> 00:05:15,810 루프의 외부. 93 00:05:15,810 --> 00:05:19,080 두 번째 세 번째는 진실해야하는 조건이 될 것입니다 94 00:05:19,080 --> 00:05:21,850 몸이처럼 다시 실행 할에 95 00:05:21,850 --> 00:05:23,330 우리 동안 루프 인치 96 00:05:23,330 --> 00:05:26,350 마지막 셋째, 우리는 될 것입니다 문을 실행할 수 있습니다 97 00:05:26,350 --> 00:05:30,270 루프의 각 반복 한 후 실행, 그래서 우리가이 없습니다 98 00:05:30,270 --> 00:05:32,710 루프 본문에 구축합니다. 99 00:05:32,710 --> 00:05:38,390 그럼 5에서 1로 카운트 다운 루프에 대한 쓰기 보자. 100 00:05:38,390 --> 00:05:41,790 우리는을위한 키워드로 시작됩니다. 101 00:05:41,790 --> 00:05:44,680 은 우리가주지, 먼저 카운터 변수를 만들 수 있습니다 102 00:05:44,680 --> 00:05:47,840 우리가 카운트 다운하고 이후 5이 시간을 설정, 103 00:05:47,840 --> 00:05:50,110 세미 콜른. 104 00:05:50,110 --> 00:05:53,660 다음은 우리가 돌​​아 오면 우리​​의 상태입니다. 105 00:05:53,660 --> 00:05:57,540 셋째, 우리는 이후의 카운터 변수를 감소하고 싶습니다 106 00:05:57,540 --> 00:05:59,620 루프의 각 반복. 107 00:05:59,620 --> 00:06:04,740 그래서 오히려 제가 플러스 플러스 말보다, 우리는 전 마이너스 마이너스라고합니다. 108 00:06:04,740 --> 00:06:05,300 괜찮아요. 109 00:06:05,300 --> 00:06:09,490 그래서 우리는 내가있는 동안 루프 몸은 실행하려는 110 00:06:09,490 --> 00:06:11,960 0보다 큰. 111 00:06:11,960 --> 00:06:16,160 루프의 본문에, 그럼 난의 값을 출력 보자. 112 00:06:16,160 --> 00:06:20,480 이렇게하려면 우리는 % d 개를 사용하여 printf 함수를 사용합니다 113 00:06:20,480 --> 00:06:21,650 자리 표시 자. 114 00:06:21,650 --> 00:06:24,820 단, 그 자리 표시 자로는으로 대체됩니다 115 00:06:24,820 --> 00:06:27,040 나는의 값입니다. 116 00:06:27,040 --> 00:06:32,060 마지막으로, 어디 루프에 대한 후 문을 추가 할 수 있습니다. 117 00:06:32,060 --> 00:06:35,850 우리가이 루프를 실행하면, 난 5시에 시작됩니다 118 00:06:35,850 --> 00:06:38,070 그래서 5 인​​쇄됩니다. 119 00:06:38,070 --> 00:06:42,000 일단은 0에 도달, 연속 상태, 전입니다 120 00:06:42,000 --> 00:06:44,450 0보다 큰, 더 이상 보유하지 않습니다. 121 00:06:44,450 --> 00:06:47,330 그래서 우리의 루프는 실행 중지되며, 우리는이 표시됩니다 122 00:06:47,330 --> 00:06:49,850 루프 후 문. 123 00:06:49,850 --> 00:06:51,340 그럼이 코드를 실행할 수 있습니다. 124 00:06:51,340 --> 00:06:52,700 첫째, 우리는 컴파일됩니다 125 00:06:52,700 --> 00:06:56,460 카운트 다운을 함께 countdown.c. 126 00:06:56,460 --> 00:06:59,320 이제, 우리는. / 카운트 다운이 코드를 실행할 수 있습니다. 127 00:07:02,340 --> 00:07:06,040 두 동안 루프와 루프에 대한 우리의 지속 128 00:07:06,040 --> 00:07:09,010 조건은 몸 전에 확인 될 것입니다 129 00:07:09,010 --> 00:07:10,960 의 루프를 실행합니다. 130 00:07:10,960 --> 00:07:13,840 즉, 즉, 우리의 조건은 처음이 아닌 경우 131 00:07:13,840 --> 00:07:18,100 사실 다음의 루프의 본문이 실행되지 않습니다. 132 00:07:18,100 --> 00:07:22,060 그럼 후 상태를 점검하는 것이 효과적 일 때가 있습니다 133 00:07:22,060 --> 00:07:25,150 루프의 본문 오히려 이전보다. 134 00:07:25,150 --> 00:07:28,270 그래서 번호를 사용자에게 묻는 메시지를 표시하도록가 루프를 작성하게 135 00:07:28,270 --> 00:07:30,990 양수가 제공 될 때까지. 136 00:07:30,990 --> 00:07:34,740 사용자가 입력 음수를하는 경우, 우리가 그들에게 물어보고 싶은 것 137 00:07:34,740 --> 00:07:36,260 다른 번호. 138 00:07:36,260 --> 00:07:38,940 그래서 우리는 안에 있어야 해이 프롬프트 할 것 139 00:07:38,940 --> 00:07:41,050 루프에서 몸. 140 00:07:41,050 --> 00:07:44,730 그러나, 루프가 처음으로 실행되며, 사용자 141 00:07:44,730 --> 00:07:46,750 아직 우리에게 번호를 부여하지 않았습니다. 142 00:07:46,750 --> 00:07:49,640 따라서이 양성 여부를 확인하기 위해 이해가되지 않습니다. 143 00:07:49,640 --> 00:07:54,020 대신, 우리는 몸의 후 번호를 확인하는 것이 좋습니다 144 00:07:54,020 --> 00:07:55,720 루프는 실행됩니다. 145 00:07:55,720 --> 00:08:00,310 우리는 루프 동안 DO와 함께이 작업을 수행 할 수 있습니다. 146 00:08:00,310 --> 00:08:03,560 첫째, 우리는 개최 n을, 변수를 만듭니다 147 00:08:03,560 --> 00:08:05,230 사용자의 입력. 148 00:08:05,230 --> 00:08:09,960 이제 우리는 중괄호 뒤에 DO 키워드를 사용하겠다 149 00:08:09,960 --> 00:08:12,930 우리 루프의 몸을 시작합니다. 150 00:08:12,930 --> 00:08:16,230 몸에서, 우리는있는 번호를 사용자에게 묻는 메시지를 수 151 00:08:16,230 --> 00:08:18,480 기능을 GetInt. 152 00:08:18,480 --> 00:08:23,230 이제 우리는이 루프의 몸이 다시 실행하는 것이 좋습니다 경우 153 00:08:23,230 --> 00:08:28,370 사용자가 음수를 입력, 우리는 말할 거예요 동안 N 154 00:08:28,370 --> 00:08:30,420 이하 0입니다. 155 00:08:30,420 --> 00:08:33,140 잠시 문 후 여기에 세미콜론을 확인할 수 있습니다. 156 00:08:38,909 --> 00:08:40,679 그럼이 코드를 실행할 수 있습니다. 157 00:08:40,679 --> 00:08:44,780 첫째, 우리는 긍정적 만들어와 함께 컴파일됩니다. 158 00:08:44,780 --> 00:08:49,340 이제 우리는 함께 프로그램을 실행할 수 있습니다. / 긍정적. 159 00:08:49,340 --> 00:08:52,660 우리는이 프로그램을 부정적인 같은 음수를 제공하는 경우 160 00:08:52,660 --> 00:08:56,560 4 다음 우리는 이후 번호 다시하라는 메시지가 표시됩니다 161 00:08:56,560 --> 00:09:00,490 우리 DO의 상태 루프 사실 있었다. 162 00:09:00,490 --> 00:09:04,690 일단 우리는 8과 같은 긍정적 인 전화 번호를 알려 163 00:09:04,690 --> 00:09:08,560 우리 DO의 상태 루프는 더 이상 진실하지 않습니다 동안. 164 00:09:08,560 --> 00:09:12,080 따라서 루프를 다시 실행되지 않습니다. 165 00:09:12,080 --> 00:09:15,290 그리고 우리가 C.에 사용할 루프의 세 가지 유형 전부 야 166 00:09:15,290 --> 00:09:18,840 내 이름은 토미이고,이 CS50입니다.