30/09/2018, 20:32
Tại sao `while(a[i++]>0)` luôn đúng kể cả khi chưa nhập giá trị vào `a[i++]`?
em có đoạn code , nhập vào các số dương gặp đến số âm thì dừng , và tính tổng các số dương; có 1 chổ em không hiểu là ở điều kiện while(a[i++]>0)
mình chưa nhập vào giá trị cho a[i++]
thì sao nó > 0 được để thực hiện tiếp vòng lặp , nhưng nó vẫn ra kết quả và chạy đúng , em vẫn chưa hiểu chổ đó mong mọi người giải thích giúp em
#include <stdio.h>
int main(){
int a[50],i=0,sum,n;
do{
printf("nhap vao vi tri %d :",i+1);
scanf("%d",&a[i]);
}
while(a[i++]>0);
i--;
for(n=0;n<i;n++){
sum+=a[n];
}
printf("tong = %d",sum);
return 0;
}
Bài liên quan
tương đương với block code sau
Nếu là
thì sẽ tương đương với
Bonus:
stackoverflow.com
Difference between i++ and ++i in a loop?
vâng , em hiểu rồi cảm ơn anh
rõ ràng là có do thì nó thuộc do{ xyz } while(abc). do là từ khoá luôn đi cùng với while
hình như bạn ấy nghĩ i++ sẽ thực hiện trước nên phần tử a[i++] chưa được nhập.