30/09/2018, 17:18
Vòng lặp while lặp mãi mãi trong C?
Em đang tự học lập trình qua kênh youtube của anh Đạt và muốn hỏi rằng: Vòng lặp while khi viết code như vây nó sẽ chạy mãi:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x=3;
while(x)
printf("%d ",x);
return 0;
}
*Khi muốn dừng thì phải thêm vào dể nó thành thế này:
#include <stdio.h>
#include <stdlib.h>
int main()
{
int x=3;
int y=1;
while(x)
{
printf("%d ",x);
if(y>100)
break;
else
y++;
}
return 0;
}
==> Vậy những dòng thêm vào đó là cách duy nhất để dừng vòng lặp while mà khi muốn xuất ra 1 chuỗi kí tự dài phải không ? Cảm ơn mấy anh chị nhiều.
Bài liên quan
Bạn tô đen code và dùng tổ hợp phím
Ctrl + k
để code dễ nhìn hơn nhé , à mà cái cách đó không phải là cách duy nhất để dừng một vòng lặp while bạn nhé , có rất nhiều cách, còn tùy vào trường hợp nữa.Cách dừng vòng lặp này là ta dừng bằng cách
break
tức nhảy ra khỏi vòng lặp từ bên trong nó.Cách khác là ta đảm bảo điều kiện ở
while
không còn đúng nữa. Thì vòng lặp sẽ dừng lại.Ví dụ như ở đây anh giảm x sau mỗi lần lặp, cho tới khi
x == 0
tức là không còn đúng nữa. Trong C thì0
có nghĩa là sai, khác0
có nghĩa là đúng.Ngoài ý kiến mọi người ra mình thấy còn có cách dùng goto để nhảy ra khỏi vòng lặp nữa:
goto theo mình nghĩ là chắc làm khó fix lỗi, nâng cấp về sau
Không hẳn, nếu mình biết sử dụng goto đúng cách thì không vấn đề gì cả. Diễn đàn có vài topic nói về goto. Ví dụ như:
thi học kỳ xong phải đọc ngay cuốn Code Complete 2 mới đc