Cấu trúc While, Do-while

0
9397

Khác với cấu trúc Vòng lặp For Cấu trúc While Sử dụng khi bài toán có công việc lặp mà không biết số lần lặp là bao nhiêu. Chỉ xác định được điều kiện dừng lặp của bài toán,…

Cấu trúc While

Điều kiện sử dụng:

– Sử dụng khi bài toán có công việc lặp mà không biết số lần lặp là bao nhiêu. Chỉ xác định được điều kiện dừng lặp của bài toán.
– Ví dụ: Nhập vào dãy số nguyên cho tới khi người dùng nhập số 0 thì dừng. Trong ví dụ, công việc nhập số nguyên được lặp đi lặp lại nhiều lần nhưng không biết là lặp bao nhiêu lần. Vòng lặp chỉ dừng khi người dùng nhập số 0.

Lưu đồ thuật toán

image001

Cú pháp:

image002
  • Ví dụ:
image004
Trong câu lệnh while, nếu biểu thức điều kiện trả về giá trị đúng thì vòng lặp tiếp tục được thực hiện.
Để tránh vòng lặp vô tận, trong câu lệnh while phải có câu lệnh làm thay đổi giá trị của biểu thức điều kiện.

Cấu trúc lặp do…while

Điều kiện sử dụng:

  • Tương tự như cấu trúc lặp while.
  • Thực hiện ít nhất một lần (while có thể không thực hiện lần nào nếu ngay mới lần đầu tiên biểu thức điều kiện trong while trả về giá trị sai).

Lưu đồ thuật toán vòng lặp do – while

image005

Cú pháp:

image006

Phân tích hoạt động của cấu trúc lặp do – while

Bước 1: Thực hiện các câu lệnh trong khối lệnh lặp do while.
Bước 2: Khi gặp đến cuối khối lệnh lặp do while, chương trình sẽ xác định giá trị của điều kiện lặp sau từ khóa while.
Bước 3: Chương trình sẽ thực thi một trong 2 nhánh sau tùy theo giá trị của biểu thức vừa nhận được.
Bước 3.1: Nếu biểu thức có giá trị đúng (khác 0), chương trình sẽ quay trở lại bước 1 để tiếp tục thực hiện vòng lặp mới.
Bước 3.2: Nếu biểu thức có giá trị sau (bằng 0), chương trình sẽ ra khỏi chu trình và chuyển tới câu lệnh đúng sau dấu chấm phẩy đặt cuối từ khóa do while.

VD:

image007
  • Ta có thể dùng từ khóa break để thoát ra khỏi vòng lặp
image008
  • Dùng từ khóa continue để chuyển sang bước lặp tiếp theo.
image010

Hướng dẫn giải quyết một bài toán cụ thể

Các bước thực hiện
  • Bước 1: Phân tích bài toán.
  • Bước 2: Cài đặt chương trình
  • Bước 3: Kiểm tra và chạy thử

VD: Nhập vào 2 số nguyên dương a và b. Tìm ước chung lớn nhất của 2 số nguyên dương đã nhập.
Bước 1: Phân tích bài toán

  • Nhập 2 số nguyên bất kỳ
  • Xuất ra ước chung lớn nhất của 2 số vừa nhập
  • 02 biến số nguyên (int), 01 biến ucln (int)
  • Sử dụng thuật toán euclid => số lần lặp của bài toán không xác định => sử dụng vòng lặp while
  • Thuật toán euclid tìm UCLN của a và b
Nếu a=b thì UCLN =a;
Nếu a>b thi UCLN(a,b)=UCLN(a-b,b)
Nếu a<b thi UCLN(a,b)=UCLN(a,b-a)

Bước 2: Cài đặt chương trình

image013
  • Khai báo và nhập dữ liệu
image016
  • Cài đặt câu lệnh rẽ nhánh
image018

Bước 3: Kiểm tra, sửa lỗi và chạy thử

Bài tập làm thêm:
Bài tập 1.Viết chương trình kiểm tra xem n có phải là số nguyên tố hay không. Biết rằng số nguyên tố nguyên lớn hơn 2 là số chỉ có 2 ước là 1 và chính nó.
Bài tập 2.Viết chương cho biết trong số nguyên n có bao nhiêu chữ số
Bài tập 3.Viết chương trình tìm bội chung nhỏ nhất (BCNN) của 2 số nguyên dương a và b nhập vào từ bàn phím. Biết rằng BCNN (a,b)=a*b/UCLN(a,b)
Bài tập 4.Viết chương trình tính tổng các số tự nhiên nhỏ hơn n (sử dụng vòng lặp While)
Bài tập 5. An gửi số tiền là n USD vào ngân hàng. An muốn số tiền của mình sẽ bằng hoặc lớn hơn 1000USD. Giúp An viết chương trình tính số tháng cần gửi vào ngân hàng để tổng tiền vốn lẫn tiền lãi sẽ lớn hơn 1000USD. Biết lãi suất 0.7%/ tháng và số tiền vốn n được nhập từ bàn phím.
Bài tập 6.Viết chương trình cho phép nhập một số nguyên từ bàn phím. Việc nhập kết thúc khi người dùng nhập vào giá trị 0. Hiển thị tổng các số vừa nhập.
Bài tập 7.Kiểm tra số nguyên dương n có các chữ số toàn là chữ số chẵn hay không?
Bài tập 8.Kiểm tra số nguyên dương n có các chữ số toàn là chữ số lẻ hay không?
Bài tập 9.Kiểm tra số nguyên dương n có các chữ số tăng dần từ trái qua phải hay không?
Bài tập 10.Kiểm tra số nguyên dương n có các chữ số giảm dần từ trái qua phải hay không?
Bài tập 11.Nhập n>0. Tìm số nguyên dương m lớn nhất sao cho 1+2+3+…+m<n.
Bài tập 12.Nhập n>0. Tìm số nguyên dương m nhỏ nhất sao cho 1+2+3+…+m>n.
Bài tập 13.Xuất số đảo của số nguyên dương n.

Xem thêm Cách sử dụng hàm trong lập trình

This site uses Akismet to reduce spam. Learn how your comment data is processed.