30/09/2018, 22:10

Thắc mắc vòng lặp for trong c

mình không hiểu đoạn code này ai giúp với

for (putchar(‘1’);putchar(‘2’); putchar(‘3’)){
putchar(‘4’);
break;
putchar(‘5’);
}

Tao Không Ngu. viết 00:16 ngày 01/10/2018

This post was flagged by the community and is temporarily hidden.

Trương Minh Giang viết 00:11 ngày 01/10/2018

mấy cái putchar trong for ý ạ

Tao Không Ngu. viết 00:25 ngày 01/10/2018

This post was flagged by the community and is temporarily hidden.

Minh Anh viết 00:14 ngày 01/10/2018

klq nhưng sao vòng for gì mà kì cục vậy trời?
mình tưởng vòng for nó phải theo cái cấu trúc for(khai báo;điều kiện;phép toán) chứ
VD:

for(int i=0;i<n;i++)
viết 00:13 ngày 01/10/2018

(bấm lộn nút reply )

for (<1>; <2>; <3>)
{
    <4>
}

thì tương đương với

<1>
while (<2>)
{
    <4>
    <3>
}

vậy cái vòng for trên có thể viết lại là

putchar('1'); //<1>
while (putchar('2') /*<2>*/)
{
    //<4>
    putchar('4');
    break;
    putchar('5');
    
    //<3>
    putchar('3'); 
}

putchar('1') in 1
while (putchar('2')) in 2
putchar('4') in 4
break kết thúc vòng lặp.
=> kết quả in ra là 124

putchar giá trị trả về là ký tự nó in ra, putchar('2') trả về '2' hay có giá trị là 50. Trong C bất kì số nào có giá trị khác 0 nghĩa là true, còn bằng 0 nghĩa là false. Vì 50 khác 0 nên điều kiện trong vòng while được đánh giá là true, và vòng while chạy bất tận (bên trong vòng while có break nên thoát ra được)

Trương Minh Giang viết 00:11 ngày 01/10/2018

cảm ơn bạn nhiều nha! mình hiểu rồi

Tao Không Ngu. viết 00:24 ngày 01/10/2018

This post was flagged by the community and is temporarily hidden.

Bài liên quan
0