Skip to content · ⁨Bỏ qua nội dung⁩

Selection and Iteration · ⁨Lựa chọn và Lặp lại⁩

AP Computer Science A · ⁨AP Khoa học máy tính A⁩ · Topic 2 · ⁨Chủ đề 2⁩

Video lesson for this topic · ⁨Bài học video cho chủ đề này⁩ Open the video page · ⁨Mở trang video⁩
7:59

Lựa chọn và Lặp lại

Đây là ba vòng lặp. Chúng khác nhau bởi một ký tự mỗi cái — dấu nhỏ hơn thay vì nhỏ hơn hoặc bằng, dấu lớn hơn thay vì nhỏ hơn. Vòng lặp đầu tiên chạy…

English narration · English + 中文 subtitles burned in · ⁨Giọng đọc tiếng Anh · phụ đề tiếng Anh + 中文 được ghi trực tiếp⁩

2.1

Selection and Repetition in Algorithms · ⁨Chọn lọc và Lặp lại trong Thuật toán⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.1.A: Represent patterns and algorithms that involve selection and repetition found in everyday life using written language or diagrams.

  • 2.1.A.1 The building blocks of algorithms include sequencing, selection, and repetition.
  • 2.1.A.2 Algorithms can contain selection, through decision making, and repetition, via looping.
  • 2.1.A.3 Selection occurs when a choice of how the execution of an algorithm will proceed is based on a true or false decision.
  • 2.1.A.4 Repetition is when a process repeats itself until a desired outcome is reached.
  • 2.1.A.5 The order in which sequencing, selection, and repetition are used contributes to the outcome of the algorithm.
Tiếng Việt

Mục tiêu học tập 2.1.A: Biểu diễn các mẫu và thuật toán liên quan đến chọn lọc và lặp lại tìm thấy trong cuộc sống hàng ngày bằng ngôn ngữ viết hoặc sơ đồ.

  • 2.1.A.1 Các khối xây dựng cơ bản của thuật toán bao gồm sắp xếp tuần tự, chọn lọc và lặp lại.
  • 2.1.A.2 Thuật toán có thể chứa chọn lọc, thông qua ra quyết định, và lặp lại, thông qua vòng lặp.
  • 2.1.A.3 Chọn lọc xảy ra khi việc lựa chọn cách thuật toán sẽ tiến hành thực thi dựa trên một quyết định đúng hoặc sai.
  • 2.1.A.4 Lặp lại là khi một quy trình lặp lại cho đến khi đạt được kết quả mong muốn.
  • 2.1.A.5 Thứ tự mà sắp xếp tuần tự, chọn lọc và lặp lại được sử dụng góp phần vào kết quả của thuật toán.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

Algorithms are built from three control structures 控制结构: sequence (steps in order), selection 选择 (choosing a path), and iteration 迭代 (repeating steps). This topic covers selection and iteration – the tools that let a program make decisions and loop.

Tiếng Việt
Sơ đồ luồng với hình thoi quyết định: chọn lọc xác định đường đi của thuật toán
Sơ đồ luồng với hình thoi quyết định: chọn lọc xác định đường đi của thuật toán

Thuật toán được xây dựng từ ba cấu trúc điều khiển: sequence (thứ tự từng bước), selection (chọn đường đi), và iteration (lặp lại các bước). Chủ đề này bao gồm selection và iteration – những công cụ giúp chương trình đưa ra quyết định và lặp lại.

Ba cấu trúc điều khiển: sequence, selection, và iteration
Ba cấu trúc điều khiển: sequence, selection, và iteration
Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
control structures/kənˈtrəʊl ˈstrʌktʃəz/ cấu trúc điều khiển
selection/sɪˈlekʃn/ chọn lọc
iteration/ˌɪtəˈreɪʃn/ lặp lại
boolean expression/ˈbuːlɪən ekˈspreʃn/ biểu thức boolean
relational operators/rɪˈleɪʃənl ˈɒpəreɪtəz/ toán tử quan hệ
if statement/ɪf ˈsteɪtmənt/ câu lệnh if
Logical operators/ˈlɒdʒɪkl ˈɒpəreɪtəz/ Toán tử logic
short-circuit evaluation/ʃɔːt ˈsɜːkɪt ɪˌvæljuːˈeɪʃn/ đánh giá ngắn mạch
De Morgan's laws/də ˈmɔːɡənz lɔːz/ định luật De Morgan
while loop/waɪl luːp/ vòng lặp while
infinite loop/ˈɪnfɪnət luːp/ vòng lặp vô hạn
2.2

Boolean Expressions · ⁨Biểu thức Boolean⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.2.A: Develop code to create Boolean expressions with relational operators and determine the result of these expressions.

  • 2.2.A.1 Values can be compared using the relational operators == and != to determine whether the values are the same. With primitive types, this compares the actual primitive values. With reference types, this compares the object references.
  • 2.2.A.2 Numeric values can be compared using the relational operators <, >, <=, and >= to determine the relationship between the values.
  • 2.2.A.3 An expression involving relational operators evaluates to a Boolean value.
Tiếng Việt

Mục tiêu học tập 2.2.A: Phát triển mã để tạo các biểu thức Boolean với các toán tử quan hệ và xác định kết quả của các biểu thức này.

  • 2.2.A.1 Các giá trị có thể được so sánh bằng cách sử dụng các toán tử quan hệ == và != để xác định xem các giá trị có giống nhau hay không. Với các kiểu nguyên thủy, điều này sẽ so sánh trực tiếp các giá trị nguyên thủy. Với các kiểu tham chiếu, điều này sẽ so sánh các tham chiếu đối tượng.
  • 2.2.A.2 Các giá trị số có thể được so sánh bằng cách sử dụng các toán tử quan hệ <, >, <=, và >= để xác định mối quan hệ giữa các giá trị.
  • 2.2.A.3 Một biểu thức liên quan đến các toán tử quan hệ sẽ trả về một giá trị Boolean.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English
Logic gates & the half-adder

A boolean expression 布尔表达式 evaluates to true or false, using relational operators 关系运算符: == (equal), != (not equal), <, >, <=, >=. Note == compares primitive values but object references for objects, so use .equals for Strings.

Tiếng Việt
Cổng logic & bộ cộng một bit

Một biểu thức boolean trả về true hoặc false, sử dụng các toán tử so sánh: == (bằng nhau), != (không bằng nhau), <, >, <=, >=. Lưu ý rằng == so sánh giá trị nguyên sinh nhưng tham chiếu đối tượng cho các đối tượng, vì vậy hãy dùng .equals cho Strings.

Ba nhóm toán tử: số học, so sánh, và logic
Ba nhóm toán tử: số học, so sánh, và logic
Explore · ⁨Khám phá⁩

Explore the AND truth table · ⁨Khám tra bảng chân lý AND⁩

A Boolean expression evaluates to true or false. AND is true only when both operands are true; toggle the inputs to see all four cases. · ⁨Một biểu thức Boolean trả về true hoặc false. AND chỉ đúng khi cả hai toán hạng đều đúng; bật/tắt các đầu vào để xem tất cả bốn trường hợp.⁩

2.3

The if Statement · ⁨Câu lệnh if⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.3.A: Develop code to represent branching logical processes by using selection statements and determine the result of these processes.

  • 2.3.A.1 Selection statements change the sequential execution of statements.
  • 2.3.A.2 An if statement is a type of selection statement that affects the flow of control by executing different segments of code based on the value of a Boolean expression.
  • 2.3.A.3 A one-way selection (if statement) is used when there is a segment of code to execute under a certain condition. In this case, the body is executed only when the Boolean expression is true.
  • 2.3.A.4 A two-way selection (if-else statement) is used when there are two segments of code—one to be executed when the Boolean expression is true and another segment for when the Boolean expression is false. In this case, the body of the if is executed when the Boolean expression is true, and the body of the else is executed when the Boolean expression is false.
Tiếng Việt

Mục tiêu học tập 2.3.A: Phát triển mã để biểu diễn các quy trình nhánh logic bằng cách sử dụng các câu lệnh chọn và xác định kết quả của các quy trình này.

  • 2.3.A.1 Các câu lệnh chọn thay đổi thứ tự thực thi tuần tự của các câu lệnh.
  • 2.3.A.2 Một câu lệnh if là một loại câu lệnh chọn ảnh hưởng đến luồng điều khiển bằng cách thực thi các đoạn mã khác nhau dựa trên giá trị của một biểu thức Boolean.
  • 2.3.A.3 Một lựa chọn một chiều (câu lệnh if) được sử dụng khi có một đoạn mã cần thực thi dưới một điều kiện nhất định. Trong trường hợp này, thân câu lệnh chỉ được thực thi khi biểu thức Boolean là true.
  • 2.3.A.4 Một lựa chọn hai chiều (câu lệnh if-else) được sử dụng khi có hai đoạn mã—một để thực thi khi biểu thức Boolean là true và một đoạn khác cho khi biểu thức Boolean là false. Trong trường hợp này, thân của if được thực thi khi biểu thức Boolean là true, và thân của else được thực thi khi biểu thức Boolean là false.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

An if statement 条件语句 runs a block only when its condition is true; an optional else gives an alternative:

Tiếng Việt

Một câu lệnh if chỉ thực thi khối mã khi điều kiện của nó là true; một tùy chọn else cung cấp một cách thay thế:

if (score >= 60) {
    System.out.println("Pass");
} else {
    System.out.println("Fail");
}
Đèn giao thông: chọn lọc xác định nhánh nào chạy, tương tự như câu lệnh if chọn đường dẫn mã
Đèn giao thông: chọn lọc xác định nhánh nào chạy, tương tự như câu lệnh if chọn đường dẫn mã
Explore · ⁨Khám phá⁩

See which branch an if chooses · ⁨Xem nhánh nào if chọn⁩

An if statement runs its body only when the condition is true, otherwise it skips to else. Slide the score across the boundaries and watch the grade change. · ⁨Câu lệnh if chỉ chạy thân code khi điều kiện đúng, ngược lại nó bỏ qua và nhảy đến else. Trượt điểm số qua các ranh giới và xem grade thay đổi.⁩

2.4

Nested if Statements · ⁨Câu lệnh if lồng nhau⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.4.A: Develop code to represent nested branching logical processes and determine the result of these processes.

  • 2.4.A.1 Nested if statements consist of if, if-else, or if-else-if statements within if, if-else, or if-else-if statements.
  • 2.4.A.2 The Boolean expression of the inner nested if statement is evaluated only if the Boolean expression of the outer if statement evaluates to true.
  • 2.4.A.3 A multiway selection (if-else-if) is used when there are a series of expressions with different segments of code for each condition. Multiway selection is performed such that no more than one segment of code is executed based on the first expression that evaluates to true. If no expression evaluates to true and there is a trailing else statement, then the body of the else is executed.
Tiếng Việt

Mục tiêu học tập 2.4.A: Phát triển mã để biểu diễn các quy trình nhánh logic lồng nhau và xác định kết quả của các quy trình này.

  • 2.4.A.1 Các câu lệnh if lồng nhau bao gồm các câu lệnh if, if-else, hoặc if-else-if nằm bên trong các câu lệnh if, if-else, hoặc if-else-if.
  • 2.4.A.2 Biểu thức Boolean của câu lệnh if lồng bên trong chỉ được đánh giá nếu biểu thức Boolean của câu lệnh if bên ngoài đánh giá ra true.
  • 2.4.A.3 Một lựa chọn nhiều chiều (if-else-if) được sử dụng khi có một chuỗi các biểu thức với các đoạn mã khác nhau cho mỗi điều kiện. Việc lựa chọn nhiều chiều được thực hiện sao cho không có quá một đoạn mã nào được thực thi dựa trên biểu thức đầu tiên đánh giá ra true. Nếu không có biểu thức nào đánh giá ra true và có một câu lệnh else ở cuối, thì thân của else sẽ được thực thi.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

Placing an if inside another, or chaining with else if, tests several cases in order. Only the first matching branch runs:

Tiếng Việt

Đặt một if bên trong một cái khác, hoặc nối tiếp với else if, để kiểm tra nhiều trường hợp theo thứ tự. Chỉ nhánh đầu tiên khớp sẽ được thực thi:

if (g >= 90) grade = 'A';
else if (g >= 80) grade = 'B';
else grade = 'C';
2.5

Compound Boolean Expressions · ⁨Biểu thức Boolean phức hợp⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.5.A: Develop code to represent compound Boolean expressions and determine the result of these expressions.

  • 2.5.A.1 Logical operators ! (not), && (and), and || (or) are used with Boolean expressions. The expression !a evaluates to true if a is false and evaluates to false otherwise. The expression a && b evaluates to true if both a and b are true and evaluates to false otherwise. The expression a || b evaluates to true if a is true, b is true, or both, and evaluates to false otherwise. The order of precedence for evaluating logical operators is ! (not), && (and), then || (or). An expression involving logical operators evaluates to a Boolean value.
  • 2.5.A.2 Short-circuit evaluation occurs when the result of a logical operation using && or || can be determined by evaluating only the first Boolean expression. In this case, the second Boolean expression is not evaluated.
Tiếng Việt

Mục tiêu học tập 2.5.A: Phát triển mã để biểu diễn các biểu thức compound Boolean và xác định kết quả của các biểu thức này.

  • 2.5.A.1 Toán tử logic ! (không), && (và), và || (hoặc) được sử dụng với các biểu thức Boolean. Biểu thức !a trả về true nếu a là false và trả về false trong trường hợp ngược lại. Biểu thức a && b trả về true nếu cả a và b đều là true và trả về false trong trường hợp ngược lại. Biểu thức a || b trả về true nếu a là true, b là true, hoặc cả hai, và trả về false trong trường hợp ngược lại. Thứ tự ưu tiên để đánh giá các toán tử logic là ! (không), sau đó là && (và), rồi || (hoặc). Một biểu thức chứa các toán tử logic sẽ trả về một giá trị Boolean.
  • 2.5.A.2 Đánh giá ngắn mạch xảy ra khi kết quả của một phép toán logic sử dụng && hoặc || có thể được xác định chỉ bằng cách đánh giá biểu thức Boolean đầu tiên. Trong trường hợp này, biểu thức Boolean thứ hai không được đánh giá.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English
Short-circuit evaluation

Logical operators 逻辑运算符 combine conditions: && (and – both true), || (or – at least one true), ! (not – reverse). Java uses short-circuit evaluation 短路求值: && stops if the left side is false, and || stops if the left side is true – useful to guard against errors, e.g. if (n != 0 && total / n > 5).

Tiếng Việt
Đánh giá ngắn mạch

Toán tử logic kết hợp các điều kiện: && (and – cả hai đều true), || (or – ít nhất một true), ! (not – đảo ngược). Java sử dụng đánh giá ngắn mạch: && dừng lại nếu vế trái là false, và || dừng lại nếu vế trái là true – hữu ích để bảo vệ chống lại lỗi, ví dụ: if (n != 0 && total / n > 5).

2.6

Comparing Boolean Expressions · ⁨So sánh Biểu thức Boolean⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.6.A: Compare equivalent Boolean expressions.

  • 2.6.A.1 Two Boolean expressions are equivalent if they evaluate to the same value in all cases. Truth tables can be used to prove Boolean expressions are equivalent.
  • 2.6.A.2 De Morgan's law can be applied to Boolean expressions to create equivalent Boolean expressions. Under De Morgan's law, the Boolean expression !(a && b) is equivalent to !a || !b and the Boolean expression !(a || b) is equivalent to !a && !b.

Learning Objective 2.6.B: Develop code to compare object references using Boolean expressions and determine the result of these expressions.

  • 2.6.B.1 Two different variables can hold references to the same object. Object references can be compared using == and !=.
  • 2.6.B.2 An object reference can be compared with null, using == or !=, to determine if the reference actually references an object.
  • 2.6.B.3 Classes often define their own equals method, which can be used to specify the criteria for equivalency for two objects of the class. The equivalency of two objects is most often determined using attributes from the two objects.
    • Exclusion statement: Overriding the equals method is outside the scope of the AP Computer Science A course and exam.
Tiếng Việt

Mục tiêu học tập 2.6.A: So sánh các biểu thức Boolean tương đương.

  • 2.6.A.1 Hai biểu thức Boolean được gọi là tương đương nếu chúng trả về cùng một giá trị trong mọi trường hợp. Bảng chân lý có thể được sử dụng để chứng minh các biểu thức Boolean tương đương.
  • 2.6.A.2 Định luật De Morgan có thể được áp dụng cho các biểu thức Boolean để tạo ra các biểu thức Boolean tương đương. Theo định luật De Morgan, biểu thức Boolean !(a && b) tương đương với !a || !b và biểu thức Boolean !(a || b) tương đương với !a && !b.

Mục tiêu học tập 2.6.B: Phát triển mã để so sánh các tham chiếu đối tượng bằng cách sử dụng các biểu thức Boolean và xác định kết quả của các biểu thức này.

  • 2.6.B.1 Hai biến khác nhau có thể chứa các tham chiếu trỏ đến cùng một đối tượng. Các tham chiếu đối tượng có thể được so sánh bằng cách sử dụng == và !=.
  • 2.6.B.2 Một tham chiếu đối tượng có thể được so sánh với null, sử dụng == hoặc !=, để xác định xem tham chiếu đó thực sự có trỏ đến một đối tượng hay không.
  • 2.6.B.3 Các lớp thường định nghĩa phương pháp equals riêng của chúng, có thể được sử dụng để chỉ định các tiêu chí cho sự tương đương giữa hai đối tượng của lớp đó. Sự tương đương của hai đối tượng thường được xác định nhất bằng cách sử dụng các thuộc tính từ cả hai đối tượng.
    • Câu loại trừ: Ghi đè phương thức equals nằm ngoài phạm vi của khóa học và kỳ thi AP Computer Science A.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

De Morgan's laws 德摩根定律 rewrite negations: !(a && b) equals !a || !b, and !(a || b) equals !a && !b. Two boolean expressions are equivalent if they give the same result for every input – a truth table proves it. Simplifying conditions this way is a common exam task.

Tiếng Việt

Định luật De Morgan viết lại các phép phủ định: !(a && b) bằng !a || !b, và !(a || b) bằng !a && !b. Hai biểu thức boolean được coi là tương đương nếu chúng trả về cùng một kết quả với mọi đầu vào – một bảng chân lý chứng minh điều đó. Rút gọn điều kiện theo cách này là một bài tập thi phổ biến.

2.7

while Loops · ⁨Vòng lặp while⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.7.A: Identify when an iterative process is required to achieve a desired result.

  • 2.7.A.1 Iteration is a form of repetition. Iteration statements change the flow of control by repeating a segment of code zero or more times as long as the Boolean expression controlling the loop evaluates to true.
  • 2.7.A.2 An infinite loop occurs when the Boolean expression in an iterative statement always evaluates to true.
  • 2.7.A.3 The loop body of an iterative statement will not execute if the Boolean expression initially evaluates to false.
  • 2.7.A.4 Off by one errors occur when the iteration statement loops one time too many or one time too few.

Learning Objective 2.7.B: Develop code to represent iterative processes using while loops and determine the result of these processes.

  • 2.7.B.1 A while loop is a type of iterative statement. In while loops, the Boolean expression is evaluated before each iteration of the loop body, including the first. When the expression evaluates to true, the loop body is executed. This continues until the Boolean expression evaluates to false, whereupon the iteration terminates.
Tiếng Việt

Mục tiêu học tập 2.7.A: Xác định khi nào cần sử dụng quy trình lặp để đạt được kết quả mong muốn.

  • 2.7.A.1 Lặp là một dạng lặp lại. Các câu lệnh lặp thay đổi luồng điều khiển bằng cách lặp lại một đoạn mã từ không đến nhiều lần, miễn là biểu thức Boolean kiểm soát vòng lặp đánh giá thành true.
  • 2.7.A.2 Một vòng lặp vô hạn xảy ra khi biểu thức Boolean trong câu lệnh lặp luôn đánh giá thành true.
  • 2.7.A.3 Thân của vòng lặp sẽ không thực thi nếu biểu thức Boolean ban đầu đánh giá thành false.
  • 2.7.A.4 Lỗi sai lệch một (off by one) xảy ra khi câu lệnh lặp chạy quá một lần hoặc thiếu một lần so với dự định.

Mục tiêu học tập 2.7.B: Viết mã để biểu diễn các quy trình lặp sử dụng vòng lặp while và xác định kết quả của các quy trình này.

  • 2.7.B.1 Vòng lặp while là một loại câu lệnh lặp. Trong các vòng lặp while, biểu thức Boolean được đánh giá trước mỗi lần lặp thân của vòng lặp, bao gồm cả lần đầu tiên. Khi biểu thức đánh giá thành true, thân vòng lặp sẽ được thực thi. Quá trình này tiếp tục cho đến khi biểu thức Boolean đánh giá thành false, lúc đó quá trình lặp sẽ kết thúc.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

A while loop 循环 repeats while its condition stays true, testing before each pass. You must change something inside so the loop eventually stops, or it becomes an infinite loop 无限循环:

Tiếng Việt

Một vòng lặp while lặp lại trong khi điều kiện của nó vẫn true, kiểm tra trước mỗi lần lặp. Bạn phải thay đổi điều gì đó bên trong để vòng lặp cuối cùng dừng lại, hoặc nó sẽ trở thành vòng lặp vô hạn:

Ba loại vòng lặp khác nhau ở vị trí kiểm tra điều kiện
Ba loại vòng lặp khác nhau ở vị trí kiểm tra điều kiện
int i = 0;
while (i < 5) {
    System.out.println(i);
    i++;
}
Explore · ⁨Khám phá⁩

Trace a while loop · ⁨Vẽ đường truy vết vòng lặp while⁩

A while loop repeats as long as its condition stays true, updating its variables each pass. Step through to see the sum of squares build up. · ⁨Vòng lặp while lặp lại chừng nào điều kiện của nó vẫn đúng, cập nhật các biến của nó mỗi lần lặp. Bước qua để xem tổng bình phương được xây dựng dần.⁩

2.8

for Loops · ⁨Vòng lặp for⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.8.A: Develop code to represent iterative processes using for loops and determine the result of these processes.

  • 2.8.A.1 A for loop is a type of iterative statement. There are three parts in a for loop header: the initialization, the Boolean expression, and the update.
  • 2.8.A.2 In a for loop, the initialization statement is only executed once before the first Boolean expression evaluation. The variable being initialized is referred to as a loop control variable. The Boolean expression is evaluated immediately after the loop control variable is initialized and then following each execution of the increment statement until it is false. In each iteration, the update is executed after the entire loop body is executed and before the Boolean expression is evaluated again.
  • 2.8.A.3 A for loop can be rewritten into an equivalent while loop (and vice versa).
Tiếng Việt

Mục tiêu học tập 2.8.A: Viết mã để biểu diễn các quy trình lặp sử dụng vòng lặp for và xác định kết quả của các quy trình này.

  • 2.8.A.1 Vòng lặp for là một loại câu lệnh lặp. Một dòng khởi tạo loop for có ba phần: phần khởi tạo, biểu thức Boolean và phần cập nhật.
  • 2.8.A.2 Trong vòng lặp for, câu lệnh khởi tạo chỉ được thực thi một lần trước khi đánh giá biểu thức Boolean lần đầu. Biến đang được khởi tạo được gọi là biến điều khiển vòng lặp. Biểu thức Boolean được đánh giá ngay sau khi biến điều khiển vòng lặp được khởi tạo, và sau đó tiếp tục được đánh giá sau mỗi lần thực thi câu lệnh tăng/giảm cho đến khi nó trở thành false. Ở mỗi lần lặp, phần cập nhật được thực thi sau khi toàn bộ thân vòng lặp đã hoàn tất và trước khi biểu thức Boolean được đánh giá lại.
  • 2.8.A.3 Một vòng lặp for có thể được viết lại thành một vòng lặp while tương đương (và ngược lại).

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

A for loop packs initialization, condition, and update into one line – best when you know the count:

A for and an equivalent while do the same work; be able to convert between them.

Tiếng Việt

Một vòng lặp for gộp việc khởi tạo, điều kiện và cập nhật vào một dòng – tốt nhất khi bạn biết trước số lượng:

for (int i = 0; i < n; i++) {
    // runs n times, i = 0..n-1
}

Một for và một while tương đương làm cùng một việc; hãy có khả năng chuyển đổi giữa chúng.

Dây chuyền sản xuất: vòng lặp lặp lại quy trình cho từng mục, giống như for và while
Dây chuyền lắp ráp: vòng lặp lặp lại quy trình cho mỗi mặt hàng, giống như for và while
Explore · ⁨Khám phá⁩

Trace a for loop · ⁨Vẽ đường truy vết vòng lặp for⁩

A for loop runs a fixed number of times, its counter stepping through a range. Watch the counter and running total advance one pass at a time. · ⁨Vòng lặp for chạy một số lần cố định, bộ đếm của nó bước qua một phạm vi. Quan sát bộ đếm và tổng đang tăng dần từng lần lặp một.⁩

2.9

Building Complete Selection and Iteration Algorithms · ⁨Xây dựng Thuật toán Chọn lọc và Lặp lại Hoàn chỉnh⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.9.A: Develop code for standard and original algorithms (without data structures) and determine the result of these algorithms.

  • 2.9.A.1 There are standard algorithms to:
    • identify if an integer is or is not evenly divisible by another integer
    • identify the individual digits in an integer
    • determine the frequency with which a specific criterion is met
    • determine a minimum or maximum value
    • compute a sum or average
Tiếng Việt

Mục tiêu học tập 2.9.A: Viết mã cho các thuật toán tiêu chuẩn và tự thiết kế (không sử dụng cấu trúc dữ liệu) và xác định kết quả của các thuật toán này.

  • 2.9.A.1 Có các thuật toán tiêu chuẩn để:
    • xác định xem một số nguyên có chia hết hay không cho một số nguyên khác
    • xác định từng chữ số riêng lẻ của một số nguyên
    • xác định tần suất mà một tiêu chí cụ thể được thỏa mãn
    • xác định giá trị tối thiểu hoặc tối đa
    • tính tổng hoặc trung bình cộng

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

Combine loops and conditions to solve real problems – count, sum, find a maximum, or test a property:

Two integer patterns the exam tests directly use % and /. To read the digits of an integer one at a time, repeatedly take n % 10 (the last digit) and then n = n / 10 (drop it). To test divisibility, n % d == 0 means n is evenly divisible by d. Combine them with a counter to find the frequency with which some criterion is met.

Standard patterns like a running total, a counter, or a flag 标志 (a boolean that records whether something happened) recur throughout the course.

Tiếng Việt

Kết hợp vòng lặp và điều kiện để giải quyết các vấn đề thực tế – đếm, tổng, tìm giá trị lớn nhất, hoặc kiểm tra một thuộc tính:

int max = arr[0];
for (int k = 1; k < arr.length; k++) {
    if (arr[k] > max) max = arr[k];
}

Hai mẫu số nguyên mà đề thi kiểm tra trực tiếp sử dụng % và /. Để đọc các chữ số của một số nguyên từng cái một, liên tục lấy n % 10 (chữ số cuối cùng) và sau đó n = n / 10 (loại bỏ nó). Để kiểm tra chia hết, n % d == 0 có nghĩa là n chia hết cho d. Kết hợp chúng với một bộ đếm để tìm tần suất mà một tiêu chí nào đó được đáp ứng.

Các mẫu chuẩn như tổng tích lũy, bộ đếm, hoặc flag (một boolean ghi nhận liệu sự kiện nào đó đã xảy ra hay không) xuất hiện xuyên suốt toàn bộ khóa học.

Vocabulary · ⁨Từ vựng⁩ Train · ⁨Luyện tập⁩
English Tiếng Việt
flag/flæɡ/ cờ
nested loop/ˈnestɪd luːp/ vòng lặp lồng nhau
Run-time analysis/rʌn taɪm əˈnæləsɪs/ Phân tích thời gian chạy
2.10

String Algorithms · ⁨Thuật toán Chuỗi⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.10.A: Develop code for standard and original algorithms that involve strings and determine the result of these algorithms.

  • 2.10.A.1 There are standard string algorithms to:
    • find if one or more substrings have a particular property
    • determine the number of substrings that meet specific criteria
    • create a new string with the characters reversed
Tiếng Việt

Mục tiêu học tập 2.10.A: Phát triển mã cho các thuật toán chuẩn và thuật toán sáng tạo liên quan đến xâu chuỗi và xác định kết quả của các thuật toán này.

  • 2.10.A.1 Có các thuật toán xâu chuỗi chuẩn để:
    • tìm xem một hoặc nhiều xâu con có thuộc tính đặc biệt hay không
    • xác định số lượng xâu con đáp ứng các tiêu chí cụ thể
    • tạo ra một xâu mới với các ký tự bị đảo ngược

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

Loop through a string by index to process each character:

Typical tasks: count occurrences, build a reversed or filtered copy, or test whether one string contains another.

Tiếng Việt

Lặp qua chuỗi theo chỉ số để xử lý từng ký tự:

for (int i = 0; i < s.length(); i++) {
    char c = s.charAt(i);
    // count vowels, reverse, check for a substring, ...
}

Các nhiệm vụ điển hình: đếm số lần xuất hiện, xây dựng bản sao đảo ngược hoặc được lọc, hoặc kiểm tra xem một chuỗi có chứa chuỗi khác hay không.

2.11

Nested Iteration · ⁨Lặp lại lồng nhau⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.11.A: Develop code to represent nested iterative processes and determine the result of these processes.

  • 2.11.A.1 Nested iteration statements are iteration statements that appear in the body of another iteration statement. When a loop is nested inside another loop, the inner loop must complete all its iterations before the outer loop can continue to its next iteration.
Tiếng Việt

Mục tiêu học tập 2.11.A: Phát triển mã để biểu diễn các quy trình lặp lồng nhau và xác định kết quả của các quy trình này.

  • 2.11.A.1 Câu lệnh lặp lồng nhau là các câu lệnh lặp xuất hiện trong thân của một câu lệnh lặp khác. Khi một vòng lặp được lồng bên trong một vòng lặp khác, vòng lặp bên trong phải hoàn thành tất cả các lần lặp trước khi vòng lặp bên ngoài có thể tiếp tục với lần lặp tiếp theo.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English

A nested loop 嵌套循环 puts one loop inside another; the inner loop completes fully for each pass of the outer. If the outer runs $n$ times and the inner $m$ times, the body runs $n\times m$ times – the basis for processing grids and comparing all pairs.

Tiếng Việt

Một vòng lặp lồng nhau đặt một vòng lặp bên trong một vòng lặp khác; vòng lặp trong hoàn thành đầy đủ cho mỗi lần lặp của vòng lặp ngoài. Nếu vòng lặp ngoài chạy $n$ lần và vòng lặp trong $m$ lần, thân code sẽ chạy $n\times m$ lần – đây là cơ sở để xử lý lưới và so sánh tất cả các cặp.

2.12

Informal Run-Time Analysis · ⁨Phân tích Thời gian Thực không Chính thức⁩

Syllabus · ⁨Chương trình⁩
English

Learning Objective 2.12.A: Calculate statement execution counts and informal run-time comparison of iterative statements.

  • 2.12.A.1 A statement execution count indicates the number of times a statement is executed by the program. Statement execution counts are often calculated informally through tracing and analysis of the iterative statements.
Tiếng Việt

Mục tiêu học tập 2.12.A: Tính số lần thực thi câu lệnh và so sánh thời gian chạy không chính thức của các câu lệnh lặp.

  • 2.12.A.1 Số lần thực thi câu lệnh chỉ số lần mà một câu lệnh được thực thi bởi chương trình. Số lần thực thi câu lệnh thường được tính toán không chính thức thông qua việc theo dõi và phân tích các câu lệnh lặp.

Source: College Board AP Course and Exam Description · ⁨Nguồn: Mô tả Khóa học và Bài thi College Board AP⁩

English
Big-O growth rates

Run-time analysis 运行时间分析 counts how many basic steps an algorithm takes as the input size $n$ grows. Count the executions of the innermost statement: a single loop over $n$ items is linear ($n$ steps); two nested loops over $n$ are quadratic ($n^2$). This informal counting lets you compare two algorithms' efficiency.

Exam skill: for a nested loop, be able to state how many times the inner statement runs in terms of the loop bounds – a frequent multiple-choice question.

Worked example. How many stars does this print?

The inner loop runs i times for each outer i: 0 + 1 + 2 + 3 = 6 stars. When the inner bound is the outer variable, the total is the triangular sum $0+1+\dots+(n-1)=\dfrac{n(n-1)}{2}$ – here $\dfrac{4\times3}{2}=6$ – not the full $n^2=16$ of a rectangular nested loop.

Tiếng Việt
Tốc độ tăng trưởng Big-O

Phân tích thời gian thực đếm số bước cơ bản mà một thuật toán thực hiện khi kích thước đầu vào $n$ tăng lên. Đếm số lần thực thi câu lệnh nằm sâu nhất: một vòng lặp đơn trên $n$ mục là tuyến tính ($n$ bước); hai vòng lặp lồng nhau trên $n$ là bậc hai ($n^2$). Việc đếm không chính thức này cho phép bạn so sánh hiệu suất của hai thuật toán.

Thời gian chạy tăng trưởng như thế nào theo số lượng phần tử n
Thời gian chạy tăng trưởng như thế nào theo số lượng phần tử n

Kỹ năng làm bài thi: đối với vòng lặp lồng nhau, hãy có khả năng nêu rõ số lần câu lệnh bên trong chạy dựa trên giới hạn của vòng lặp – đây là dạng câu hỏi trắc nghiệm thường gặp.

Ví dụ giải chi tiết. Số sao được in ra là bao nhiêu?

for (int i = 0; i < 4; i++)
    for (int j = 0; j < i; j++)
        System.out.print("*");

Vòng lặp trong chạy i lần cho mỗi vòng i ngoài: 0 + 1 + 2 + 3 = 6 ngôi sao. Khi cận trong là biến ngoài, tổng là tổng tam giác $0+1+\dots+(n-1)=\dfrac{n(n-1)}{2}$ – ở đây $\dfrac{4\times3}{2}=6$ – chứ không phải tổng đầy đủ $n^2=16$ của một vòng lặp lồng nhau hình chữ nhật.

Explore · ⁨Khám phá⁩

Compare how algorithms scale · ⁨So sánh cách thuật toán mở rộng⁩

Run-time describes how the number of steps grows with the input size $n$. Increase $n$ and watch a linear $O(n)$ pull far ahead of a quadratic $O(n^2)$. · ⁨Thời gian chạy mô tả sự gia tăng số bước theo kích thước đầu vào $n$. Tăng $n$ và quan sát một hàm tuyến tính $O(n)$ vượt xa một hàm bậc hai $O(n^2)$.⁩

2.12

Exam tips · ⁨Mẹo làm bài thi⁩

English
  • Get boundary conditions right: use < vs <= deliberately, and watch the first and last iteration of every loop (off-by-one is the classic bug).
  • Build compound conditions with &&, ||, ! and remember short-circuit evaluation (put the null check first).
  • Trace nested loops by counting how many times the inner body runs in total.
  • Choose the right structure — if/else if for ranges, a loop for repetition — and avoid an infinite loop by updating the loop variable.
  • Apply De Morgan's laws when you simplify or negate a boolean condition.
Tiếng Việt
  • Đảm bảo điều kiện biên chính xác: sử dụng < so với <= một cách có chủ đích, và theo dõi lần lặp đầu tiên và cuối cùng của mọi vòng lặp (lỗi lệch một đơn vị là lỗi kinh điển).
  • Xây dựng điều kiện phức hợp với &&, ||, ! và nhớ đánh giá ngắn mạch (đặt kiểm tra null lên trước).
  • Theo dõi các vòng lặp lồng nhau bằng cách đếm xem thân trong đã chạy bao nhiêu lần tổng cộng.
  • Chọn cấu trúc phù hợp — if/else if cho phạm vi, vòng lặp cho sự lặp lại — và tránh vòng lặp vô hạn bằng cách cập nhật biến vòng lặp.
  • Áp dụng luật De Morgan khi rút gọn hoặc phủ định một điều kiện boolean.

Interactive lessons on this topic · ⁨Bài học tương tác về chủ đề này⁩

Work through it step by step, with instant-check exercises. · ⁨Làm theo từng bước, kèm theo bài tập kiểm tra ngay lập tức.⁩

Past Papers · ⁨Đề thi cũ⁩

More topics in AP Computer Science A · ⁨AP Khoa học máy tính A⁩ · ⁨Nhiều chủ đề hơn trong AP Computer Science A · ⁨AP Khoa học máy tính A⁩⁩

Log in or create account · ⁨Đăng nhập hoặc tạo tài khoản⁩

IGCSE, A-Level & AP