﻿1
00:00:04,360 --> 00:00:05,860
‫Xin chào và hoan nghênh bài giảng này.

2
00:00:05,860 --> 00:00:12,940
‫Chúng ta sẽ học cách chúng ta có thể thực thi một đoạn mã với số lần biến thiên để

3
00:00:12,940 --> 00:00:20,050
‫chúng ta có thể in ra mọi đối tượng chồng lên nhau bên trong khu vực này, thành phần kích hoạt này.

4
00:00:20,050 --> 00:00:24,400
‫Vì vậy, bạn có thể thấy ở đây rằng khi cả hai chúng tôi, tôi đang đứng bên trong và cũng có một người lính gác.

5
00:00:24,430 --> 00:00:29,410
‫Nó in ra cả tên gargoyles và tên thiết kế của người chơi.

6
00:00:29,410 --> 00:00:31,360
‫Hãy đi sâu vào và xem điều này được thực hiện như thế nào.

7
00:00:31,930 --> 00:00:38,890
‫Bây giờ, vấn đề với mã của chúng tôi ở đây là mảng các tác nhân của chúng tôi có thể có nhiều hơn chỉ một tác nhân trong

8
00:00:38,890 --> 00:00:39,220
‫đó.

9
00:00:39,220 --> 00:00:44,380
‫Và nếu chúng tôi muốn hiển thị tất cả các tác nhân chồng lên nhau hoặc chúng tôi muốn làm điều gì đó với

10
00:00:44,380 --> 00:00:47,680
‫tất cả các tác nhân đó, chúng tôi cần có thể chạy qua mã.

11
00:00:47,680 --> 00:00:53,740
‫Sẽ rất kém hiệu quả nếu viết câu lệnh if cho trường hợp chúng ta có hai

12
00:00:53,740 --> 00:00:58,840
‫hoặc ba hoặc bốn hoặc năm, v.v. Và nó chắc chắn sẽ không bao giờ bắt kịp mọi trường hợp vì chúng tôi có một

13
00:00:58,840 --> 00:01:00,220
‫số lượng dòng giới hạn trong tệp của mình.

14
00:01:00,580 --> 00:01:08,230
‫Vì vậy, cách chúng ta giải quyết vấn đề này, khi chúng ta muốn lặp lại một đoạn mã nhiều lần, nhưng một số lần mà

15
00:01:08,230 --> 00:01:14,530
‫chúng ta không thực sự biết khi chúng ta đang biên dịch mã, chúng ta cần thay thế câu lệnh if.

16
00:01:14,770 --> 00:01:20,170
‫Nếu câu lệnh về cơ bản cho biết, tôi có nên thực thi mã này hay không với một cái gì đó cho biết,

17
00:01:20,170 --> 00:01:25,300
‫tôi có nên thực thi mã này hay tôi nên thực thi nó nhiều lần, hai lần, ba lần, bốn lần, v.v.?

18
00:01:25,450 --> 00:01:29,440
‫Cách chúng tôi làm điều này là với một cái gì đó được gọi là một tuyên bố hoang dã.

19
00:01:29,440 --> 00:01:32,440
‫Bây giờ nó được xây dựng rất giống một câu lệnh if.

20
00:01:32,440 --> 00:01:41,350
‫Vì vậy, trong khi bạn đặt một số loại giá trị boolean bên trong dấu ngoặc đơn, và sau đó chúng ta có một số

21
00:01:41,350 --> 00:01:42,430
‫dấu ngoặc nhọn.

22
00:01:42,430 --> 00:01:48,340
‫Và bên trong dấu ngoặc nhọn, khối mã đó sẽ tiếp tục được thực thi lặp

23
00:01:48,340 --> 00:01:54,340
‫đi lặp lại cho đến khi điều kiện trong câu lệnh while của chúng ta trở thành sai.

24
00:01:54,340 --> 00:01:55,990
‫Đó là lý do tại sao nó được gọi là while.

25
00:01:55,990 --> 00:01:59,320
‫Vì vậy, trong khi điều này là đúng, hãy thực thi đoạn mã này.

26
00:01:59,320 --> 00:02:04,630
‫Vì vậy, nó hơi giống câu lệnh if ở chỗ đôi khi nó có thể không thực thi mã, nhưng không

27
00:02:04,630 --> 00:02:09,940
‫giống như câu lệnh if chỉ có thể thực thi một đoạn mã một lần, câu lệnh while về cơ bản

28
00:02:09,940 --> 00:02:14,890
‫có thể tiếp tục thực thi nó mãi mãi nếu boolean này không bao giờ trở thành sai.

29
00:02:15,460 --> 00:02:22,420
‫Vậy tại sao điều này lại hữu ích khi chúng ta có thể tạo một int 32 và gọi nó là chỉ mục và bắt đầu nó từ 0?

30
00:02:22,900 --> 00:02:31,390
‫Và sau đó mỗi khi chúng tôi đi qua phần thân của vòng lặp hoang dã này, chúng tôi tăng giá trị được lưu trữ trong chỉ mục

31
00:02:31,390 --> 00:02:31,750
‫đó.

32
00:02:31,750 --> 00:02:36,130
‫Vì vậy, chúng ta có thể nói chỉ mục bằng chỉ số cộng với một.

33
00:02:36,640 --> 00:02:42,520
‫Bây giờ trong C ++, có một cách viết tắt để làm điều này thay vì phải làm chỉ mục cộng với một

34
00:02:42,520 --> 00:02:49,480
‫như thế này, bạn thực hiện cộng với chỉ mục cộng và điều đó chỉ thêm một vào bất kỳ thứ gì được lưu trữ trong biến chỉ mục.

35
00:02:50,110 --> 00:02:50,360
‫Được chứ.

36
00:02:50,470 --> 00:02:52,090
‫Vì vậy, chúng tôi bắt đầu từ con số không.

37
00:02:52,120 --> 00:02:54,940
‫Chúng tôi mỗi lần chúng tôi đi xung quanh, chúng tôi tăng chỉ số.

38
00:02:54,940 --> 00:03:02,620
‫Và những gì chúng ta có thể làm là chúng ta có thể làm cho nó để chúng ta chỉ đi quanh vòng lặp while này, trong khi chỉ mục của chúng

39
00:03:02,620 --> 00:03:05,200
‫ta nằm trong giới hạn của mảng của chúng ta.

40
00:03:05,200 --> 00:03:11,440
‫Vì vậy, chúng ta có thể nói rằng chỉ số phải nhỏ hơn các tác nhân dot num.

41
00:03:11,440 --> 00:03:13,210
‫Vì vậy, đó là kích thước của mảng.

42
00:03:13,210 --> 00:03:19,570
‫Hãy nhớ rằng khi chúng ta có năm mục trong mảng, mục cuối cùng trong mảng là chỉ mục bốn.

43
00:03:19,870 --> 00:03:28,450
‫Và vì vậy chúng ta có thể thấy rằng điều này sẽ đúng khi chỉ mục hợp lệ, khi chỉ mục bốn nhỏ hơn năm.

44
00:03:28,450 --> 00:03:34,540
‫Nhưng ngay sau khi chỉ mục của chúng ta đi qua phần cuối của mảng, khi nó đến chỉ mục

45
00:03:34,540 --> 00:03:37,390
‫năm, thì số tác nhân sẽ không còn nữa.

46
00:03:37,390 --> 00:03:39,220
‫Nó là năm không còn ít hơn năm.

47
00:03:39,220 --> 00:03:45,220
‫Vì vậy, vòng lặp while sẽ ngừng thực hiện và tiếp tục với phần còn lại của hàm.

48
00:03:45,700 --> 00:03:53,110
‫Vì vậy, điều đó có nghĩa là bây giờ chúng ta có thể lấy đoạn mã mà chúng ta đã có ở trên và viết lại nó.

49
00:03:53,290 --> 00:03:58,270
‫Hãy lấy nó, sao chép nó, cắt nó ra và dán nó vào đây trong vòng lặp hoang dã của chúng ta.

50
00:03:58,270 --> 00:04:03,520
‫Nhưng trước khi chúng tôi tăng chỉ số, quan trọng nhất, bởi vì những gì chúng tôi sẽ làm là thay thế số

51
00:04:03,520 --> 00:04:08,560
‫0 này, nơi chúng tôi nhận tác nhân bằng không, chúng tôi sẽ thay thế nó bằng chỉ số diễn viên.

52
00:04:08,800 --> 00:04:10,210
‫Vì vậy, chúng ta hãy làm theo điều này thông qua.

53
00:04:10,240 --> 00:04:11,950
‫Làm thế nào điều này sẽ hoạt động?

54
00:04:12,580 --> 00:04:15,910
‫Hãy xóa câu lệnh if của chúng tôi vì điều đó hơi khó hiểu một chút.

55
00:04:15,910 --> 00:04:20,230
‫Vì vậy, chúng tôi bắt đầu giá trị trong chỉ số biến sẽ bằng không.

56
00:04:20,530 --> 00:04:23,470
‫Bây giờ hãy tưởng tượng chúng ta có hai diễn viên để giữ mọi thứ đơn giản.

57
00:04:23,680 --> 00:04:27,070
‫Số 0 có nhỏ hơn hai không?

58
00:04:27,100 --> 00:04:27,760
‫Đúng.

59
00:04:27,760 --> 00:04:28,570
‫Vâng, đúng vậy.

60
00:04:28,570 --> 00:04:37,510
‫Vì vậy, chúng tôi đi vào và chúng tôi nhận được tác nhân bằng không, chúng tôi nhận được tên của nó và chúng tôi đăng xuất và sau đó chúng tôi tăng giá trị trong

61
00:04:37,510 --> 00:04:38,680
‫chỉ mục lên một.

62
00:04:38,680 --> 00:04:40,840
‫Vì vậy, nó đi từ con số không trở thành một con số không.

63
00:04:41,320 --> 00:04:47,320
‫Bây giờ chúng ta quay lại để đánh giá điều kiện của vòng lặp while và chúng ta nói là một nhỏ hơn hai?

64
00:04:47,320 --> 00:04:48,190
‫Vâng, đúng vậy.

65
00:04:48,190 --> 00:04:55,540
‫Sau đó, chúng tôi có thể vào và lấy diễn viên một và sau đó chúng tôi sẽ lấy tên và in tên của nó.

66
00:04:55,540 --> 00:05:02,380
‫Sau đó, chúng tôi tăng chỉ số một lần nữa lên chỉ mục hai và chúng tôi đặt câu hỏi một lần nữa trong vòng lặp hoang dã,

67
00:05:02,380 --> 00:05:03,760
‫nói rằng nhỏ hơn hai.

68
00:05:04,240 --> 00:05:05,890
‫Vâng, câu trả lời đó là không.

69
00:05:05,890 --> 00:05:12,070
‫Vì vậy, chúng tôi bỏ qua phần nội dung của vòng lặp while và chúng tôi tiếp tục và thực thi phần còn lại của mã.

70
00:05:12,430 --> 00:05:15,120
‫Vì vậy, về cơ bản đó là những gì chúng tôi muốn đạt được.

71
00:05:15,130 --> 00:05:22,990
‫Chúng tôi muốn in ra tên của từng tác nhân trong mảng và đó là những gì đoạn mã này sẽ

72
00:05:22,990 --> 00:05:23,590
‫làm.

73
00:05:23,620 --> 00:05:26,370
‫Hãy tiếp tục và biên dịch nó và kiểm tra xem tôi có đúng không.

74
00:05:26,380 --> 00:05:33,010
‫Nếu chúng tôi tiếp tục và nhấn play và bước vào hộp, bạn có thể thấy rằng chúng tôi chỉ chồng chéo trình

75
00:05:33,010 --> 00:05:33,610
‫phát BP.

76
00:05:33,730 --> 00:05:36,270
‫Điều gì sẽ xảy ra nếu chúng ta đi và lấy bộ đồ của mình?

77
00:05:36,280 --> 00:05:41,070
‫Nếu chúng tôi chỉ dán nó vào phần bị trả lại, bạn có thể thấy rằng chúng tôi sẽ chồng chéo lên nhau.

78
00:05:41,080 --> 00:05:43,250
‫Nhưng nếu tôi cũng bước vào thì sao?

79
00:05:43,270 --> 00:05:49,600
‫Bây giờ bạn có thể thấy nó đang in cả việc chúng ta chồng chéo trình phát và gargoyle vào cùng một

80
00:05:49,600 --> 00:05:50,080
‫khung.

81
00:05:50,080 --> 00:05:56,770
‫Vì vậy, vòng lặp while của chúng tôi đang hoạt động, nó thực thi một đoạn mã nhiều lần khi có

82
00:05:56,770 --> 00:05:58,520
‫nhiều tác nhân trong mảng.

83
00:05:58,540 --> 00:06:04,570
‫Bây giờ, vì mẫu này rất phổ biến nên chúng ta có một số loại chỉ mục và chúng ta tăng nó lên mỗi khi

84
00:06:04,570 --> 00:06:09,340
‫chúng ta đi qua vòng lặp, thực sự có một số viết tắt cho điều này trong C ++.

85
00:06:09,340 --> 00:06:18,310
‫Và nếu bạn nhập bốn vào mã Visual Studio của mình, thì có một đoạn mã cho vòng lặp bốn ở đây mà bạn có

86
00:06:18,310 --> 00:06:23,890
‫thể mở rộng và bạn có thể thấy rằng đây là cấu trúc chung.

87
00:06:23,890 --> 00:06:25,420
‫Nó có một thứ gọi là cỡ T ở đây.

88
00:06:25,420 --> 00:06:29,470
‫Chúng tôi chỉ có thể thay thế nó bằng INT 32 cho các mục đích của chúng tôi.

89
00:06:29,620 --> 00:06:35,980
‫Và về cơ bản điều này đang nói là có ba câu lệnh bên trong dấu ngoặc đơn của vòng lặp

90
00:06:35,980 --> 00:06:36,390
‫for.

91
00:06:36,400 --> 00:06:43,240
‫Cái đầu tiên tương đương với nơi chúng ta thiết lập biến chỉ mục của mình trước vòng lặp while.

92
00:06:43,780 --> 00:06:49,120
‫Điều kiện thứ hai là điều kiện tương đương với những gì chúng ta đặt bên trong vòng lặp hoang dã của mình.

93
00:06:49,510 --> 00:06:54,670
‫Và bạn có thể thấy chúng tôi có thể thay thế số lượng bằng các diễn viên dot num.

94
00:06:54,670 --> 00:07:01,240
‫Và sau đó bit cuối cùng về cơ bản là điểm cộng dù bạn đặt trước hay sau thì chỉ số không

95
00:07:01,240 --> 00:07:07,240
‫quá quan trọng, nhưng bạn có thể thấy rằng điều này đang làm tăng giá trị trong chỉ mục.

96
00:07:07,240 --> 00:07:11,080
‫Vì vậy, nó tương đương với dòng mà chúng tôi đặt ở cuối vòng lặp hoang dã của chúng tôi.

97
00:07:11,470 --> 00:07:17,980
‫Vì vậy, điều này chỉ tập hợp tất cả lại trong một dòng những gì chúng tôi phải trải ra trên nhiều bằng cách sử dụng vòng lặp hoang

98
00:07:17,980 --> 00:07:18,910
‫dã của chúng tôi.

99
00:07:18,910 --> 00:07:20,380
‫Vì vậy, đây là một thách thức đơn giản dành cho bạn.

100
00:07:20,380 --> 00:07:23,470
‫Chuyển đổi vòng lặp hoang dã của bạn thành vòng lặp for.

101
00:07:23,470 --> 00:07:30,220
‫Bạn sẽ sao chép phần nội dung của mã, thay đổi chỉ mục từ chỉ mục tên đó thành I.

102
00:07:30,250 --> 00:07:36,550
‫Chúng tôi thường sử dụng chữ viết tắt trong vòng lặp của I chỉ là chữ viết tắt của chỉ mục thực sự và biên dịch

103
00:07:36,550 --> 00:07:38,020
‫và thử nghiệm video tạm dừng.

104
00:07:38,020 --> 00:07:38,800
‫Bây giờ có một đi.

105
00:07:41,860 --> 00:07:42,180
‫Được chứ.

106
00:07:42,190 --> 00:07:42,760
‫Chào mừng trở lại.

107
00:07:42,760 --> 00:07:44,710
‫Vì vậy, điều này nên khá đơn giản.

108
00:07:44,710 --> 00:07:47,050
‫Chúng tôi không muốn chỉ số cộng cộng ở đây.

109
00:07:47,050 --> 00:07:53,530
‫Vì vậy, chúng tôi sẽ cắt bỏ phần còn lại, thay đổi kênh so với nơi chúng tôi đang lập chỉ mục mảng tác nhân với

110
00:07:53,530 --> 00:07:54,370
‫biến chỉ mục.

111
00:07:54,370 --> 00:07:58,450
‫Chúng tôi sẽ thay đổi điều đó thành IE, biến chỉ có sẵn trong vòng lặp for này.

112
00:07:58,450 --> 00:08:04,750
‫Đó là một lợi thế khác của cú pháp vòng lặp đầy đủ là biến IE chỉ có sẵn trong vòng lặp for, trong khi

113
00:08:04,990 --> 00:08:10,210
‫khi chúng ta khai báo nó ở đây trong vòng lặp Y, nó có sẵn ở bên ngoài, loại

114
00:08:10,210 --> 00:08:16,990
‫gây ô nhiễm các chỉ mục mà chúng ta có thể sử dụng sau này để chúng ta có thể xóa vòng lặp hoang dã đó.

115
00:08:16,990 --> 00:08:23,230
‫Và bạn có thể thấy rằng vòng lặp for cô đọng hơn rất nhiều và bạn sẽ quen với cú

116
00:08:23,230 --> 00:08:25,390
‫pháp hơi lạ mà nó có.

117
00:08:25,390 --> 00:08:30,670
‫Hãy tiếp tục và biên dịch và chỉ cần kiểm tra xem nó có thực sự làm công việc tương tự hay không.

118
00:08:30,670 --> 00:08:38,050
‫Nếu tôi đi lấy gargoyle của mình và đến với các diễn viên chồng chéo, bạn có thể thấy rằng thực sự đang in cả hai diễn viên

119
00:08:38,050 --> 00:08:42,100
‫của chúng tôi khi cả hai chúng tôi đang chồng lên nhau trong hốc tường.

120
00:08:42,130 --> 00:08:42,850
‫Công cụ tuyệt vời.

121
00:08:42,850 --> 00:08:49,840
‫Vì vậy, trong bài giảng này, chúng ta đã thấy một ý tưởng lập trình mới, ý tưởng về các vòng lặp, và chúng ta

122
00:08:49,840 --> 00:08:53,230
‫đặc biệt xem xét vòng lặp while và vòng lặp for.

123
00:08:53,230 --> 00:08:54,910
‫Hẹn gặp lại các bạn trong bài giảng tiếp theo.

