Loops Flashcards

1
Q

while (true) forever from scratch
while (expr) khác repeat until trong scratch
do while
for (start; expr; increment)

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

> > DOUG LLOYD: Được rồi, vậy hãy nói về các vòng lặp.
0:07
Vì vậy, các vòng lặp khá thú vị vì chúng cho phép chương trình của bạn
0:10
thực thi lặp đi lặp lại các dòng mã.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

ctrl C đề tắt chương trình đang chạy

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

While sẽ tiếp tục làm điều đó cho đến khi nó sai

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

1
00:00:05,410 –> 00:00:07,640
» DOUG LLOYD: Được rồi, vậy hãy nói về các vòng lặp.

2
00:00:07,640 –> 00:00:10,015
Vì vậy, các vòng lặp khá thú vị vì chúng cho phép chương trình của bạn

3
00:00:10,015 –> 00:00:12,050
thực thi lặp đi lặp lại các dòng mã.

4
00:00:12,050 –> 00:00:15,600
Lặp đi lặp lại mà không cần phải sao chép và dán hoặc lặp lại chúng.

5
00:00:15,600 –> 00:00:17,630
Có ba loại vòng lặp chính mà bạn sẽ thấy.

6
00:00:17,630 –> 00:00:21,010
Bạn có thể sẽ có dịp sử dụng từng cái khi bạn tiến bộ qua CS50.

7
00:00:21,010 –> 00:00:22,940
Một số vòng lặp này khá quen thuộc với bạn từ Scratch,

8
00:00:22,940 –> 00:00:25,814
vì vậy, một lần nữa, như chúng ta đã làm với câu điều kiện, chúng ta sẽ đặt chúng cạnh nhau

9
00:00:25,814 –> 00:00:28,930
nếu có sự tương đồng mà chúng ta có thể rút ra.

10
00:00:28,930 –> 00:00:33,600
» Đầu tiên là forever from Scratch, cái so sánh với while (true).

11
00:00:33,600 –> 00:00:35,390
Đây là những gì chúng ta gọi là một vòng lặp vô hạn.

12
00:00:35,390 –> 00:00:38,560
Các dòng mã giữa các dấu ngoặc nhọn, giống như các mảnh ghép

13
00:00:38,560 –> 00:00:41,190
nằm gọn bên trong chữ C của khối vĩnh viễn,

14
00:00:41,190 –> 00:00:45,290
sẽ thực thi lặp đi lặp lại từ trên xuống dưới, lặp đi lặp lại

15
00:00:45,290 –> 00:00:46,085
mãi mãi.

16
00:00:46,085 –> 00:00:48,710
Xét cho cùng, nếu bạn nhớ lại cuộc thảo luận của chúng ta về các biểu thức Boolean, thì

17
00:00:48,710 –> 00:00:51,060
true luôn luôn true.

18
00:00:51,060 –> 00:00:53,250
Vì vậy, nếu chúng ta đang làm điều gì đó miễn là đúng

19
00:00:53,250 –> 00:00:58,227
là đúng– có vẻ hơi ngớ ngẩn– đúng luôn là đúng, vì vậy nó sẽ luôn chạy.

20
00:00:58,227 –> 00:01:00,060
Nó sẽ chạy mãi mãi và mãi mãi cho đến khi chúng ta

21
00:01:00,060 –> 00:01:02,900
tìm ra cách thoát khỏi nó bằng một câu lệnh break, một lần nữa,

22
00:01:02,900 –> 00:01:06,350
chúng ta đã thấy cách đây ít lâu khi chúng ta nói về switch.

23
00:01:06,350 –> 00:01:08,725
» Hoặc nếu không thì chỉ cần giết chương trình của chúng ta , điều này tình cờ xảy ra

24
00:01:08,725 –> 00:01:11,110
nếu bạn thấy mình trong một tình huống có vòng lặp vô hạn

25
00:01:11,110 –> 00:01:13,484
và bạn không biết làm thế nào để dừng chương trình của mình chạy.

26
00:01:13,484 –> 00:01:16,527
Chỉ cần nhấn điều khiển và C và điều đó sẽ giết chương trình của bạn cho bạn.

27
00:01:16,527 –> 00:01:18,360
Nhưng điều này, một lần nữa, được gọi là một vòng lặp vô hạn.

28
00:01:18,360 –> 00:01:19,818
Đó là một vòng lặp sẽ chạy mãi mãi.

29
00:01:22,570 –> 00:01:25,610
Bây giờ, trong khi các vòng lặp không phải lúc nào cũng vô hạn, bởi vì

30
00:01:25,610 –> 00:01:27,880
chúng ta cũng có thể thay thế biểu thức Boolean bằng một cái gì đó

31
00:01:27,880 –> 00:01:29,867
hữu ích hơn một chút so với true.

32
00:01:29,867 –> 00:01:30,950
Vì vậy, đây là một ví dụ khác.

33
00:01:30,950 –> 00:01:34,600
Trong khi và một số biểu thức Boolean và sau đó là dấu ngoặc nhọn.

34
00:01:34,600 –> 00:01:38,310
Điều đó khá giống với việc lặp lại từ đầu.

35
00:01:38,310 –> 00:01:40,700
Mặc dù trong một giây, tôi sẽ giải thích sự khác biệt.

36
00:01:40,700 –> 00:01:44,310
» Vì vậy, trong C, nếu biểu thức Boolean bên trong vòng lặp while

37
00:01:44,310 –> 00:01:47,980
được đánh giá là đúng, thì các dòng mã giữa các dấu ngoặc nhọn

38
00:01:47,980 –> 00:01:51,900
sẽ thực thi lặp đi lặp lại cho đến khi biểu thức Boolean

39
00:01:51,900 –> 00:01:55,174
đánh giá là sai.

40
00:01:55,174 –> 00:01:57,340
Vì vậy, ví dụ, bạn có thể có một số loại bộ đếm.

41
00:01:57,340 –> 00:02:01,440
Vì vậy, giả sử bạn ở đầu vòng lặp này nói int x bằng không.

42
00:02:01,440 –> 00:02:06,370
Trong khi x nhỏ hơn 100, hãy thực hiện một vài thao tác bên trong dấu ngoặc nhọn đó,

43
00:02:06,370 –> 00:02:10,570
rồi ở cuối vòng lặp, bạn nói x cộng cộng, bạn đang tăng x.

44
00:02:10,570 –> 00:02:13,360
Cuối cùng x sẽ tiến tới 100 và bạn sẽ

45
00:02:13,360 –> 00:02:15,760
dừng lại vì điều kiện x nhỏ hơn 100

46
00:02:15,760 –> 00:02:19,416
sẽ không còn đúng ngay khi x bằng 100.

47
00:02:19,416 –> 00:02:21,820
100 không nhỏ hơn 100.

48
00:02:21,820 –> 00:02:25,870
» Bây giờ hơi khó hiểu, hành vi của vết xước khối bị đảo ngược.

49
00:02:25,870 –> 00:02:29,110
Vì vậy, hãy thực sự cẩn thận nếu đây là bước đột phá đầu tiên của bạn trong việc sử dụng các vòng lặp.

50
00:02:29,110 –> 00:02:33,630
Về cơ bản, khối repeat until trong Scratch

51
00:02:33,630 –> 00:02:35,970
sẽ lặp đi lặp lại một thứ gì đó ,

52
00:02:35,970 –> 00:02:40,460
cho đến khi biểu thức, biểu thức Boolean trong hình lục giác là đúng.

53
00:02:40,460 –> 00:02:43,860
Vì vậy, nó sẽ tiếp tục làm điều đó cho đến khi nó là sự thật.

54
00:02:43,860 –> 00:02:48,881
Trong khi đó, vòng lặp while sẽ tiếp tục làm điều đó cho đến khi nó sai.

55
00:02:48,881 –> 00:02:51,630
Vì vậy, chúng khá giống nhau, nhưng có một sự khác biệt nhỏ mà bạn cần

56
00:02:51,630 –> 00:02:55,140
cẩn thận, đặc biệt là khi bạn thực hiện bước đột phá đầu tiên của mình từ việc chuyển

57
00:02:55,140 –> 00:02:58,149
sang Scratch sang c.

58
00:02:58,149 –> 00:03:00,190
Loại vòng lặp tiếp theo thực sự khá giống nhau.

59
00:03:00,190 –> 00:03:02,860
Nó được gọi là vòng lặp do while.

60
00:03:02,860 –> 00:03:07,060
Vòng lặp này sẽ thực thi tất cả các dòng mã giữa các dấu ngoặc nhọn một lần,

61
00:03:07,060 –> 00:03:09,530
sau đó nó sẽ kiểm tra biểu thức Boolean.

62
00:03:09,530 –> 00:03:11,700
Nếu biểu thức Boolean đánh giá là đúng, thì

63
00:03:11,700 –> 00:03:14,340
nó sẽ quay lại và lặp lại quá trình đó nhiều

64
00:03:14,340 –> 00:03:17,690
lần cho đến khi biểu thức Boolean đánh giá là sai.

65
00:03:17,690 –> 00:03:23,370
Vì vậy, vòng lặp này, không giống như vòng lặp while, được đảm bảo chạy ít nhất một lần.

66
00:03:23,370 –> 00:03:26,080
Điều này có thể khá hữu ích.

67
00:03:26,080 –> 00:03:28,011
» Cuối cùng, chúng ta có một vòng lặp for.

68
00:03:28,011 –> 00:03:30,010
Đối với các vòng lặp là loại không hấp dẫn về mặt cú pháp

69
00:03:30,010 –> 00:03:32,330
và có rất nhiều thứ đang diễn ra ở đây, vì vậy hãy đồng ý với tôi

70
00:03:32,330 –> 00:03:34,640
khi chúng ta cố gắng tách các phần này ra.

71
00:03:34,640 –> 00:03:36,810
Nói chung, trường hợp sử dụng của vòng lặp for là bạn

72
00:03:36,810 –> 00:03:40,136
muốn lặp lại điều gì đó trong một số lần cụ thể.

73
00:03:40,136 –> 00:03:42,010
Trong ví dụ này ở đây, tôi có khối lặp lại

74
00:03:42,010 –> 00:03:44,010
từ Scratch, tương tự như vòng lặp for

75
00:03:44,010 –> 00:03:47,340
trong C, lặp lại 10 lần.

76
00:03:47,340 –> 00:03:49,250
Và vòng lặp for ở bên trái, đó

77
00:03:49,250 –> 00:03:51,410
là vòng lặp bốn sẽ làm điều tương tự.

78
00:03:51,410 –> 00:03:52,570
Điều này sẽ đi 10 lần.

79
00:03:52,570 –> 00:03:56,720
Đếm từ 0, chúng tôi tăng từng lượt của vòng lặp.

80
00:03:56,720 –> 00:03:59,220
Và chúng tôi tiếp tục làm như vậy cho đến khi tôi chưa đầy 10 tuổi.

81
00:03:59,220 –> 00:04:00,134
» Vậy chuyện gì sẽ xảy ra?

82
00:04:00,134 –> 00:04:01,550
Có rất nhiều mã ở đó.

83
00:04:01,550 –> 00:04:03,424
Hãy chia nhỏ từng bước những gì đang xảy ra

84
00:04:03,424 –> 00:04:05,684
khi chúng ta tìm hiểu kỹ một vòng lặp for.

85
00:04:05,684 –> 00:04:08,350
Điều đầu tiên xảy ra là biến đếm là trung tâm.

86
00:04:08,350 –> 00:04:11,970
Mọi thứ ở bên trái dấu chấm phẩy đầu tiên bên trong dấu ngoặc đơn

87
00:04:11,970 –> 00:04:12,970
được thực thi.

88
00:04:12,970 –> 00:04:15,180
Trong trường hợp này, chúng ta đang nói int i bằng 0.

89
00:04:15,180 –> 00:04:18,709
Khai báo một biến mới gọi là i, biến đó là một kiểu số nguyên

90
00:04:18,709 –> 00:04:22,570
và chúng ta đang nói giá trị bên trong biến đó sẽ bằng không.

91
00:04:22,570 –> 00:04:25,480
» Điều thứ hai chúng tôi làm là sau đó chúng tôi ngay lập tức đánh giá

92
00:04:25,480 –> 00:04:26,750
biểu thức Boolean.

93
00:04:26,750 –> 00:04:30,100
Biểu thức Boolean nằm ở giữa hai dấu chấm phẩy.

94
00:04:30,100 –> 00:04:31,360
Tôi chưa đến 10.

95
00:04:31,360 –> 00:04:32,410
Điều đó đúng ở đây, phải không?

96
00:04:32,410 –> 00:04:36,030
Chúng ta vừa nói i bằng 0, và vì vậy 0 nhỏ hơn 10,

97
00:04:36,030 –> 00:04:38,040
và vì vậy điều kiện đó là đúng và bây giờ chúng ta sẽ

98
00:04:38,040 –> 00:04:40,640
tiến hành thực hiện phần thân của vòng lặp.

99
00:04:40,640 –> 00:04:41,480
Nếu nó là sai.

100
00:04:41,480 –> 00:04:46,380
Ví dụ, nếu tôi nói thay vì i bằng 0 thì tôi nói tôi bằng 15,

101
00:04:46,380 –> 00:04:47,820
int i bằng 15.

102
00:04:47,820 –> 00:04:51,450
Vâng 15 không nhỏ hơn 10, vì vậy chúng ta sẽ không bao giờ nhập phần thân của vòng lặp

103
00:04:51,450 –> 00:04:55,450
vì biểu thức Boolean ở đó sẽ ước lượng thành là sai.

104
00:04:55,450 –> 00:04:59,060
» Sau khi đi từ trên xuống dưới, chúng ta gặp dấu ngoặc nhọn đóng đó,

105
00:04:59,060 –> 00:05:00,830
điều thứ ba xảy ra.

106
00:05:00,830 –> 00:05:03,840
Biến bộ đếm được tăng lên, hay đúng hơn, các dòng

107
00:05:03,840 –> 00:05:07,790
mã của câu lệnh sau dấu chấm phẩy thứ hai bên trong dấu ngoặc đơn của

108
00:05:07,790 –> 00:05:10,500
vòng lặp for được thực thi.

109
00:05:10,500 –> 00:05:13,250
Vì vậy, chúng tôi bắt đầu bằng cách nói int i bằng 0.

110
00:05:13,250 –> 00:05:15,770
Sau đó, chúng tôi kiểm tra xem biểu thức Boolean có đúng hay không.

111
00:05:15,770 –> 00:05:17,469
0 nhỏ hơn, 10 nên nó đúng.

112
00:05:17,469 –> 00:05:19,510
Vì vậy, chúng ta sẽ tiến hành vòng lặp trong phần thân.

113
00:05:19,510 –> 00:05:22,676
Mọi thứ sẽ xảy ra bên trong vòng lặp và khi chúng ta gặp dấu ngoặc nhọn đóng đó

114
00:05:22,676 –> 00:05:25,660
, điều tiếp theo chúng ta làm là nói i plus, plus.

115
00:05:25,660 –> 00:05:28,860
Tôi là số không bây giờ tôi là một.

116
00:05:28,860 –> 00:05:33,100
Sau đó, chúng ta kiểm tra lại giá trị của biểu thức Boolean ở giữa.

117
00:05:33,100 –> 00:05:34,900
Một nhỏ hơn 10.

118
00:05:34,900 –> 00:05:38,325
Vì vậy, chúng ta sẽ lặp đi lặp lại quá trình này.

119
00:05:38,325 –> 00:05:40,590
Chúng ta sẽ quay lại dấu ngoặc nhọn đóng.

120
00:05:40,590 –> 00:05:44,090
Chúng ta sẽ tăng i từ 1 lên 2 và từ 2 lên 3.

121
00:05:44,090 –> 00:05:48,290
Và cứ thế, cứ thế, cho đến khi cuối cùng giá trị của i trở thành 10.

122
00:05:48,290 –> 00:05:49,950
10 có nhỏ hơn 10 không?

123
00:05:49,950 –> 00:05:51,200
Không.

124
00:05:51,200 –> 00:05:53,800
Đếm từ 0, chúng ta đã trải qua 10 lần lặp.

125
00:05:53,800 –> 00:05:57,204
Chúng tôi đã lặp lại 10 lần, giống như chúng tôi đã làm trong khối Scratch.

126
00:05:57,204 –> 00:05:59,370
Và về cơ bản, đó là quy trình cho một vòng lặp bốn.

127
00:05:59,370 –> 00:06:01,630
» Bây giờ loại bỏ mã thực tế và đưa nó

128
00:06:01,630 –> 00:06:05,120
vào một số câu lệnh chung cơ bản.

129
00:06:05,120 –> 00:06:06,550
Đây là những gì xảy ra.

130
00:06:06,550 –> 00:06:09,290
Tất cả các câu lệnh bắt đầu được thực hiện đầu tiên.

131
00:06:09,290 –> 00:06:11,260
Bạn có thể có nhiều hơn một.

132
00:06:11,260 –> 00:06:13,440
Sau đó, biểu thức Boolean được kiểm tra.

133
00:06:13,440 –> 00:06:17,850
Nếu biểu thức ước tính là đúng, hãy thực hiện vòng lặp phần thân một lần.

134
00:06:17,850 –> 00:06:21,060
Nếu biểu thức đánh giá là sai, chúng tôi đã hoàn thành.

135
00:06:21,060 –> 00:06:23,040
Chúng tôi hoàn toàn không thực hiện phần thân của vòng lặp.

136
00:06:23,040 –> 00:06:25,530
Sau khi chúng tôi thực hiện vòng lặp phần thân một lần,

137
00:06:25,530 –> 00:06:29,487
chúng tôi sẽ thực hiện những gì trong phần gia tăng ở đó.

138
00:06:29,487 –> 00:06:31,820
Thường sẽ là một cái gì đó giống như tôi cộng, cộng

139
00:06:31,820 –> 00:06:34,510
hoặc một cái gì đó tương tự, sửa đổi một biến đếm.

140
00:06:34,510 –> 00:06:37,390
Sau đó, sau khi chúng tôi tăng, chúng tôi kiểm tra lại biểu thức

141
00:06:37,390 –> 00:06:41,120
và lặp đi lặp lại các bước đó nhiều lần cho đến khi biểu thức

142
00:06:41,120 –> 00:06:42,890
không còn đúng nữa.

143
00:06:42,890 –> 00:06:44,469
» Vì vậy, các trường hợp sử dụng cho một vòng lặp là gì?

144
00:06:44,469 –> 00:06:46,760
Sử dụng bạn sử dụng vòng lặp while khi bạn muốn một vòng lặp lặp lại

145
00:06:46,760 –> 00:06:51,200
một số lần không xác định, nhưng nó có thể không chạy hết.

146
00:06:51,200 –> 00:06:53,940
Một ví dụ thực sự phổ biến về vòng lặp while đang được sử dụng

147
00:06:53,940 –> 00:06:56,480
là chạy luồng điều khiển cho một trò chơi.

148
00:06:56,480 –> 00:06:59,040
Bạn có thể không biết người dùng sẽ chơi trong bao lâu,

149
00:06:59,040 –> 00:07:01,440
nhưng bạn muốn tiếp tục làm điều tương tự.

150
00:07:01,440 –> 00:07:04,970
Cập nhật vị trí của các họa tiết khác nhau trên bảng.

151
00:07:04,970 –> 00:07:07,490
Bạn muốn mọi thứ luôn chuyển động,

152
00:07:07,490 –> 00:07:09,110
nhưng bạn không biết khi nào người dùng sẽ ngừng chơi

153
00:07:09,110 –> 00:07:10,450
hoặc khi nào họ sắp hết mạng.

154
00:07:10,450 –> 00:07:12,741
Vì vậy, một vòng lặp while thực sự tốt cho những thứ như thế.

155
00:07:12,741 –> 00:07:14,130
Đó là một trường hợp sử dụng tốt.

156
00:07:14,130 –> 00:07:16,230
» Đối với vòng lặp do while, nó khá giống nhau.

157
00:07:16,230 –> 00:07:19,746
Bạn muốn một vòng lặp lặp lại một số lần không xác định , nhưng ít nhất một lần.

158
00:07:19,746 –> 00:07:22,370
Bạn cũng có thể sử dụng điều này cho một trò chơi , nhưng một trường hợp sử dụng thực sự phổ biến

159
00:07:22,370 –> 00:07:24,420
là nhắc người dùng nhập liệu. Nói

160
00:07:24,420 –> 00:07:28,609
chung, bạn có thể nói điều gì đó như, hãy cho tôi một số nguyên dương

161
00:07:28,609 –> 00:07:30,650
và bạn có thể đặt số đó bên trong vòng lặp do while.

162
00:07:30,650 –> 00:07:33,900
Vì vậy, nó sẽ luôn hỏi họ ít nhất một lần cho một số nguyên dương.

163
00:07:33,900 –> 00:07:36,850
Nếu họ cung cấp cho bạn một số nguyên dương, bạn có thể thoát ra khỏi vòng lặp.

164
00:07:36,850 –> 00:07:37,599
Bạn có thể được thực hiện.

165
00:07:37,599 –> 00:07:39,900
Biểu thức Boolean trong do while có thể sai.

166
00:07:39,900 –> 00:07:41,137
» Và bạn sẽ không hỏi lại họ.

167
00:07:41,137 –> 00:07:44,470
Nếu họ đưa cho bạn một số âm khi họ nhập một số từ hoặc thứ gì đó

168
00:07:44,470 –> 00:07:46,630
không thực sự hữu ích cho bạn, bạn có thể sử dụng

169
00:07:46,630 –> 00:07:49,770
vòng lặp do while để quay lại và thực hiện lại nhiều lần.

170
00:07:49,770 –> 00:07:52,410
Bạn chắc chắn muốn yêu cầu họ cấp số cho bạn một lần,

171
00:07:52,410 –> 00:07:56,350
nhưng bạn không biết bao nhiêu lần sau đó họ có thể là loài gây hại.

172
00:07:56,350 –> 00:08:00,540
Và vì vậy hãy làm trong khi đó là một trường hợp sử dụng tuyệt vời để nhắc người dùng nhập liệu.

173
00:08:00,540 –> 00:08:03,060
Và trường hợp sử dụng vòng lặp for điển hình là khi

174
00:08:03,060 –> 00:08:06,230
bạn muốn lặp lại một vòng lặp với số lần riêng biệt,

175
00:08:06,230 –> 00:08:08,230
mặc dù bạn có thể không biết số lần

176
00:08:08,230 –> 00:08:10,040
tại thời điểm chương trình được biên dịch.

177
00:08:10,040 –> 00:08:15,510
» Ví dụ, có thể bạn có một chương trình nhắc người dùng nhập một số.

178
00:08:15,510 –> 00:08:17,660
Và họ nhập 100.

179
00:08:17,660 –> 00:08:20,510
Và sau đó vòng lặp for của bạn trong trường hợp đó sẽ chạy 100 lần.

180
00:08:20,510 –> 00:08:22,480
Hoặc có thể họ nhập 1.000 vào chương trình của bạn

181
00:08:22,480 –> 00:08:24,570
và sau đó chạy vòng lặp 1.000 lần.

182
00:08:24,570 –> 00:08:26,987
Đó là một số lần cụ thể.

183
00:08:26,987 –> 00:08:28,820
Họ không nhất thiết phải biết con số đó

184
00:08:28,820 –> 00:08:31,010
là gì vào thời điểm chương trình được biên dịch.

185
00:08:31,010 –> 00:08:35,010
Nó không giống như một vòng lặp trong khi nó có thể là vô hạn.

186
00:08:35,010 –> 00:08:37,127
Đó là một con số mà bạn không biết.

187
00:08:37,127 –> 00:08:39,210
Bây giờ, mặc dù tôi đã vạch ra tất cả các trường hợp sử dụng này, nhưng

188
00:08:39,210 –> 00:08:41,501
bạn nên biết rằng trong hầu hết mọi trường hợp,

189
00:08:41,501 –> 00:08:44,110
bạn có thể hoán đổi cả ba vòng lặp này.

190
00:08:44,110 –> 00:08:46,890
Bạn có thể sử dụng vòng lặp for nếu không thì bạn sẽ sử dụng vòng lặp while.

191
00:08:46,890 –> 00:08:49,860
Bạn có thể sử dụng vòng lặp for bất cứ nơi nào bạn muốn sử dụng vòng lặp do while, v.v.

192
00:08:49,860 –> 00:08:53,680
Đôi khi, việc này có thể hơi rắc rối, vì vậy, nhìn chung, bạn nên

193
00:08:53,680 –> 00:08:55,140
tuân theo một trường hợp sử dụng thông thường.

194
00:08:55,140 –> 00:08:57,599
Sử dụng vòng lặp do while nếu bạn muốn một cái gì đó ít nhất một lần.

195
00:08:57,599 –> 00:09:00,514
Sử dụng vòng lặp for nếu bạn muốn làm điều gì đó trong một số lần cụ thể.

196
00:09:00,514 –> 00:09:03,730
Rốt cuộc, đó là lý do tại sao có ba loại vòng lặp khác nhau.

197
00:09:03,730 –> 00:09:06,172
» Vì vậy, chúng có thể được sử dụng trong ngữ cảnh phù hợp.

198
00:09:06,172 –> 00:09:07,880
Nhưng bạn có thể trao đổi chúng nếu bạn muốn.

199
00:09:07,880 –> 00:09:10,790
Nếu bạn cảm thấy thoải mái với vòng lặp while và bạn luôn muốn sử dụng vòng lặp while.

200
00:09:10,790 –> 00:09:12,623
Đó là điều mà bạn có thể làm, mặc dù nó

201
00:09:12,623 –> 00:09:15,590
có thể hơi phức tạp về mặt cú pháp , trong đó vòng lặp for

202
00:09:15,590 –> 00:09:17,850
sẽ đơn giản hơn rất nhiều.

203
00:09:17,850 –> 00:09:21,100
» Tên tôi là Doug Lloyd và đây là CS50.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Bản chất thêm nhiều công cụ nhưng cách diễn đạt vẫn như vậy không đổi

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

For

6:06
Tất cả các câu lệnh bắt đầu được thực hiện đầu tiên.
6:09
Bạn có thể có nhiều hơn một.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

While

> > Vì vậy, các trường hợp sử dụng cho một vòng lặp là gì?
6:44
Sử dụng bạn sử dụng vòng lặp while khi bạn muốn một vòng lặp lặp lại
6:46
một số lần không xác định, nhưng nó có thể không chạy hết.
6:51
Một ví dụ thực sự phổ biến về vòng lặp while đang được sử dụng
6:53
là chạy luồng điều khiển cho một trò chơi.
6:56
Bạn có thể không biết người dùng sẽ chơi trong bao lâu,
6:59
nhưng bạn muốn tiếp tục làm điều tương tự.
7:01
Cập nhật vị trí của các họa tiết khác nhau trên bảng.
7:04
Bạn muốn mọi thứ luôn chuyển động,
7:07
nhưng bạn không biết khi nào người dùng sẽ ngừng chơi
7:09
hoặc khi họ sắp hết mạng.
7:10
Vì vậy, một vòng lặp while thực sự tốt cho những thứ như thế.
7:12
Đó là một trường hợp sử dụng tốt.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Bây giờ, mặc dù tôi đã vạch ra tất cả các trường hợp sử dụng này,
8:39
bạn nên biết rằng trong hầu hết mọi hoàn cảnh,
8:41
bạn có thể hoán đổi cả ba vòng lặp này.

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly