01/10/2018, 10:53

Ngôn ngữ C, bài 19, lệnh break. viết lại for bằng while


Cho mình hỏi, cần chỉnh sửa lệnh while như thế nào để cho giống như cấu trúc for ở trên, mình chạy rồi nhưng lại in ra như thế này ()

HK boy viết 13:06 ngày 01/10/2018

Mỗi lần vào vòng for i là j đều được khởi tạo lại -> trong vòng while i thêm j = 0 trước vòng while j.

Lương Thế Hải viết 13:09 ngày 01/10/2018

do sau khi chạy xong vòng lặp

while (j < 5)
{
    j++;
   printf("i = %d ; j = %d", i, j);
}

giá trị của j = 5 không thỏa mãn điều kiện vòng lặp trên nên nó không chạy vòng lặp trên

Đạt Trình viết 13:08 ngày 01/10/2018

trong while bạn không có biến m ấy với thêm if vào =))

int i = 0;
int j = 0;
int m = 3;
while (i < 10)
{
     while (j <= 5)
     {
           if (j < m)
                break;
           ++j;
           printf("i =%d; j = %d\n", i, j);
     }
     printf("thoat j\n");
     ++i;
} 
printf("Thoat i\n");

Theo mình thì như vầy =))

Trung Phanle viết 13:02 ngày 01/10/2018

Cảm ơn bạn Đạt Trình, biến m minh lấy biến m ở trên của 2 dòng for. Mình đã thử code cua bạn rồi, nó vẫn in ra dòng chữ

Cái minh muốn như anh Đạt viết 2 dòng for là

.
Mong cac bạn góp ý mình với. Cảm ơn nhiều.

Lương Thế Hải viết 12:57 ngày 01/10/2018

Bạn có thể set lại giá trị của j trước hoặc sau vòng lặp con

Đạt Trình viết 12:54 ngày 01/10/2018
    int i = 0;
    int m = 3;
    while (i < 10)
    {
        int j = 0;
        while (j <= 5)
        {
            if (j > m)
                break;
            else
            {
                printf("i =%d; j = %d\n", i, j);
            }
            j++;
        }
        printf("thoat j\n");
        ++i;
    }
    printf("Thoat i\n");

Thử cái này xem bạn =)) trước mình nhầm j < m với j phải được khai bao sau mỗi lần thực hiện while của i nó mới hiện giống vậy được =))

Trung Phanle viết 13:00 ngày 01/10/2018

Cảm ơn bạn dattrinh28 nhiều, giờ mình hiểu thêm rồi, phải khai báo biến j. Cảm ơn bạn.

Bài liên quan
0