Chuong trinh java găp lỗi và bị thoat khoi while năm 2024

Chương trình đầu tiên của chúng tôi là một chuỗi các lệnh được thực hiện lần lượt. Không có nĩa. Đây là HelloWorld, đưa ra cụm từ chào hỏi và các phép tính số học tới bảng điều khiển. Sau các chương trình đầu tiên, chúng ta đã học cách phân nhánh, tức là chương trình thực hiện một số hành động nhất định tùy theo điều kiện. Đây là cách bạn có thể mã hóa máy điều hòa để bật để sưởi ấm và làm mát:

if (tempRoom>tempComfort)
    airConditionerOn();
if (tempRoom<tempComfort
    heaterOn();

Hãy thực hiện bước tiếp theo. Trong cuộc sống hàng ngày, chúng ta thường thực hiện những hành động đơn điệu, lặp đi lặp lại, chẳng hạn như gọt táo để làm bánh. Quá trình hấp dẫn này có thể được mô tả như sau:

  1. Nếu có táo trong chậu, hãy làm theo các bước từ 1.1 đến 1.4:
    1. 1.1. Lấy một quả táo
    2. 1.2. Làm sạch và cắt thành lát
    3. 1.3. Đặt trên đế bánh ngọt vào chảo rán
    4. 1.4. Hãy quay lại bước 1.

Chuong trinh java găp lỗi và bị thoat khoi while năm 2024

Giả sử bạn có 10 quả táo, 2 bàn tay và một con dao. Trong cuộc sống, bạn luôn làm sạch toàn bộ mười, được hướng dẫn bởi cùng một thuật toán. Làm thế nào bạn có thể khiến chương trình thực hiện một hành động lặp lại với mỗi quả táo?

  • Chúng ta hãy tự ràng buộc mình với số lượng táo, nhưng nếu chúng ta có ít táo, một số lệnh sẽ được thực thi vô ích nếu không có "trọng tải" (và có lẽ, chúng ta sẽ tự cắt mình khi gọt một quả táo không tồn tại).
  • Nếu có nhiều táo hơn nhóm chế biến của chúng tôi thì một số sản phẩm sẽ không được xử lý.
  • “Mã” như vậy rất khó đọc, chứa nhiều sự lặp lại và khó sửa đổi.

Vòng lặp là các toán tử để thực hiện các hành động nhiều lần.

Vòng lặp while Java (vòng lặp vile) hoạt động tốt trong trường hợp của chúng tôi. Thiết kế này tổ chức nhiều hành động thành một cấu trúc ngắn gọn và dễ hiểu. Một thuật toán cắt táo để làm bánh trong Java có thể trông như thế này:

while(числоЯблокВТазике>0) {
    яблоко = тазик.взятьОчередноеЯблоко();
    положитьВПирог(яблоко.чистить().нарезать());
    числоЯблокВТазике--;//-- this is a decrement, reduces the number of apples by one
}
System.out.println('Apples for the pie are processed.');

Cú pháp lệnh

Cách đầu tiên để mô tả câu lệnh while như sau:

while(Логическое выражение) {
  // Loop body - periodically executed statement(s)
}

Việc này được thực hiện như sau (từng bước một):

  1. Chúng tôi đánh giá điều kiện Boolean theo sau dấu ngoặc đơn.
  2. Nếu điều kiện logic đúng thì các toán tử trong thân vòng lặp được thực thi, sau khi thực hiện toán tử cuối cùng trong thân vòng lặp thì chuyển sang bước 1
  3. Nếu điều kiện logic là sai thì chúng ta chuyển sang câu lệnh đầu tiên bên ngoài vòng lặp while.

Chuong trinh java găp lỗi và bị thoat khoi while năm 2024

Vòng lặp với điều kiện tiên quyết

Vì trước khi thực hiện phần thân vòng lặp, chúng ta luôn tính toán trước một biểu thức logic (điều kiện để vào vòng lặp) nên kiểu while này thường được gọi là vòng lặp có điều kiện tiên quyết. Hãy xây dựng một bảng gồm mười số nguyên đầu tiên, lũy thừa dương của một số:

public static void main(String[] args) {
    int number = 3; // Number to be raised to a power
    int result = 1; // Result of exponentiation
    int power = 1; // Initial exponent
    while(power <= 10) { // loop entry condition
        result = result * number;
        System.out.println(number + "to the extent" + power + " = " + result);
        power++;
    }
}

Kết quả đầu ra của bàn điều khiển:

3 в степени 1 = 3
3 в степени 2 = 9
3 в степени 3 = 27
3 в степени 4 = 81
3 в степени 5 = 243
3 в степени 6 = 729
3 в степени 7 = 2187
3 в степени 8 = 6561
3 в степени 9 = 19683
3 в степени 10 = 59049
Process finished with exit code 0

Vòng lặp với hậu điều kiện

Loại chu kỳ thứ hai:

do {
    // Loop body - periodically executed statement(s)
}while (Логическое выражение);

Thực hiện như sau (các bước):

  1. Phần thân vòng lặp được thực thi (ngay sau từ khóa do).
  2. Chúng tôi đánh giá điều kiện Boolean theo sau dấu ngoặc đơn.
  3. Nếu điều kiện logic đúng thì chuyển sang bước 1
  4. Nếu điều kiện logic là sai thì chúng ta chuyển sang câu lệnh đầu tiên bên ngoài vòng lặp while.

Hai điểm khác biệt chính so với loại vòng lặp trước đó: phần thân vòng lặp được thực thi ít nhất một lần và điều kiện logic được kiểm tra sau khi phần thân vòng lặp được thực thi. Vì vậy, loại vòng lặp while này được gọi là vòng lặp hậu điều kiện. Lần này chúng ta sẽ hiển thị một bảng lũy ​​thừa của một số không vượt quá 10000:

public static void main(String[] args) {
    int number = 3;// Number to be raised to a power
    int result = number;// Result of exponentiation
    int power = 1;// Initial exponent
    do {
        System.out.println(number + "to the extent" + power + " = " + result);
        power++;
        result = result * number;
    }while (result < 10000); // loop exit condition

Kết quả đầu ra của bàn điều khiển:

3 в степени 1 = 3
3 в степени 2 = 9
3 в степени 3 = 27
3 в степени 4 = 81
3 в степени 5 = 243
3 в степени 6 = 729
3 в степени 7 = 2187
3 в степени 8 = 6561
Process finished with exit code 0

Hãy chú ý đến những thay đổi trong mã, so sánh nó với phiên bản của vòng lặp có điều kiện tiên quyết.

Sự thật thú vị về cách làm việc với vòng lặp

Các lệnh điều khiển trong thân vòng lặp

Có hai lệnh ảnh hưởng đến tiến trình của vòng lặp: break, các tính năng mà chúng tôi sẽ trình bày trong chương tiếp theo, và