PIC Vietnam

PIC Vietnam (http://www.picvietnam.com/forum/index.php)
-   Cơ bản về vi điều khiển và PIC (http://www.picvietnam.com/forum/forumdisplay.php?f=8)
-   -   Hỏi về vòng lặp while (http://www.picvietnam.com/forum/showthread.php?t=30390)

binhphuong5487 03-09-2012 04:25 PM

Hỏi về vòng lặp while
 
cho em hỏi, khi thực hiện dòng lặp while thì điều kiện được kiểm tra liên tục hay khi thực hiện xong hết các lệnh trong while thì chương trình mới kiểm tra tiếp
Ví dụ
while (i>0)
{
lệnh 1;
lệnh 2;
lệnh 3;
}

giả sử thực hiện xong lệnh 2, thì giá trị của i<0, vậy vòng lặp while có thực hiện lệnh 3 không? hay thoát ra ngoài luôn?

vietthanh123 04-09-2012 09:41 AM

Các câu lệnh sẽ được thực hiện lần lượt, khi đó, nó sẽ kiểm tra đk ở vòng lặp while đầu tiên, nếu đk này thỏa mãn thì các câu lệnh bên trong sẽ lần lượt được thực hiện, khi thực hiện hết các lệnh trong vòng lặp nó mới lại kiểm tra tiếp điều kiện trong while. Bởi vậy , khi đó nếu đang thực hiện các lệnh trong vòng lặp mà đk trong while ko đúng nữa thì nó vẫn làm cho tới hết các lệnh thì mới thoát khỏi vòng lặp.
Cái này bạn hoàn toàn có thể kiểm tra bằng cách:đk vòng lặp while đặt một nút nhấn và vài con led đơn VD:
while(button==0)
{
led1= sáng;
delay_ms(1000);
led2=sáng;
delay_ms(1000);
}
Khi đó, mình nhấn nút xuống button=0 rồi thả tay ra ngay thì thấy các led vẫn sáng bình thường(thực hiện hết các lệnh trong vòng lặp)

buivantuyen89th 04-09-2012 09:47 AM

mình kiểm tra rồi bạn ạ. nó chạy hết lượt rồi mới quay lại kiểm tra điều kiện.
chúc bạn thành công!hi

tuonghiendk7.1 06-09-2012 09:16 PM

Đây chính là điểm khác if mình bổ xung là khi thực hiện nếu điều kiện vẫn đúng thì nó sẽ luôn ở vòng lặp điểm này khác vòng lặp ì mà mãi mình mới hiểu được hj


Múi giờ GMT. Hiện tại là 06:46 PM.

Tên diễn đàn: vBulletin Version 3.8.11
Được sáng lập bởi Đoàn Hiệp.
Copyright © PIC Vietnam