Video Ngôn Ngữ C - 20 - Cách bỏ qua một nhóm các điều kiện trong vòng lặp, dùng continue

c
video

(Lê Trần Đạt) #1

#Đăng ký khóa học C++ cơ bản 2016 ( NEW ) tại đây :
#Thông tin về khóa học xem tại đây :

-Sự khác biệt giữa 2 khóa học cũ và mới :
+Khóa học C++ cơ bản 2016 là khóa học mới, được đầu tư nhiều hơn từ nội dung, phương pháp học, cách học hiệu quả.
+Trong khóa học còn có nhiều kiến thức mới như thực hành trên HackerRank, thực hành trên Codefights và Đạt nghĩ mọi người nên học khóa học mới, bởi vì đây là kiến thức mới, phù hợp với hiện tại… Mặt khác âm thanh cũng tốt hơn nhiều so với khóa học cũ giúp đỡ việc lắng nghe và hiểu được tốt hơn.


Tổng hợp các video hướng dẫn lập trình C của Lê Trần Đạt
(Space) #2

sao em làm bài tập và bài này khi in kết quả ra chả khác gì break;
Do em sai hay là do bài này vậy anh


(Lê Trần Đạt) #3

Em gửi code lên anh xem thử.


(Space) #4
#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n = 3;
    int i = 0;
    while(i<10) {
        int j = 0;
        while(j<5) {
            if(j == n)
                continue;
            printf("i = %d ,j = %d\n",i, j);
            j++;
        }
        printf("thoat khoi vong lap j\n");
        i++;
    }
    printf("da thoat khoi vong lap i\n");
    return 0;
}

Đây nè anh


(Lê Trần Đạt) #5

Em thay break vào chỗ continue sẽ thấy kết quả khác biệt hoàn toàn mà. Trong trường hợp này, đã thay break vào chỗ continue.

#include <stdio.h>
#include <stdlib.h>

int main()
{
    int n = 3;
    int i = 0;
    while(i<10) {
        int j = 0;
        while(j<5) {
            if(j == n)
                break;
            printf("i = %d ,j = %d\n",i, j);
            j++;
        }
        printf("thoat khoi vong lap j\n");
        i++;
    }
    printf("da thoat khoi vong lap i\n");
    return 0;
}

Kết quả

i = 0 ,j = 0
i = 0 ,j = 1
i = 0 ,j = 2
thoat khoi vong lap j
i = 1 ,j = 0
i = 1 ,j = 1
i = 1 ,j = 2
thoat khoi vong lap j
i = 2 ,j = 0
i = 2 ,j = 1
i = 2 ,j = 2
thoat khoi vong lap j
i = 3 ,j = 0
i = 3 ,j = 1
i = 3 ,j = 2
thoat khoi vong lap j
i = 4 ,j = 0
i = 4 ,j = 1
i = 4 ,j = 2
thoat khoi vong lap j
i = 5 ,j = 0
i = 5 ,j = 1
i = 5 ,j = 2
thoat khoi vong lap j
i = 6 ,j = 0
i = 6 ,j = 1
i = 6 ,j = 2
thoat khoi vong lap j
i = 7 ,j = 0
i = 7 ,j = 1
i = 7 ,j = 2
thoat khoi vong lap j
i = 8 ,j = 0
i = 8 ,j = 1
i = 8 ,j = 2
thoat khoi vong lap j
i = 9 ,j = 0
i = 9 ,j = 1
i = 9 ,j = 2
thoat khoi vong lap j
da thoat khoi vong lap i

Còn nếu vẫn để continue thì ta có kết quả

i = 0 ,j = 0
i = 0 ,j = 1
i = 0 ,j = 2

Và lặp vô tận không thoát được chương trình. Lý do là continue sẽ làm cho câu lệnh tiếp theo trở thành

while(j<5) {

Trong khi nếu dùng break thì câu lệnh tiếp theo sẽ là

printf("thoat khoi vong lap j\n");

(Trần Ngọc Tú) #6

anh oi coi bai toan cua em co sai ko ak :slight_smile:
code

int main()
{
    int n=3;
    int i=0;
    while(i<10)
    {
        printf("phan tu i= %d\n",i);
        int j=0;
        while(j<5)
            {printf("phan tu j=%d\n",j);
            if (j==n)
                continue;
            printf("phan tu dc nhac lai j=%d\n",j);
            j++;
            }
        i++;
    }
    return 0;
}

(Lê Trần Đạt) #7

Video này anh post 8 tháng trước rồi, anh không nhớ cái đề lắm :smile: Nhưng mà chắc là em code đúng rồi.


83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?