01/10/2018, 10:39

Thắc mắc về vòng lặp For và While

em muốn hỏi tại chỉ thay lệnh for bằng lệnh while mà code dưới không chạy đúng như code trên ạ !

code1 :

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

int main()
{for(int i=0; i<10; i++)
{int y=0;
    while(y<5)
      {
        printf("gia tri cua i la %d gia tri cua y la %d 
",i, y);
        y++;

         }
    printf("da thoat vong lap y
");
}
printf("da thoat vong lap i 
");
}

code2:

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

int main()
{for(int i=0; i<10; i++)
{int y=0;
    for(int y=0; y< 5; y++);
      {
        printf("gia tri cua i la %d gia tri cua y la %d 
",i, y);

         }
    printf("da thoat vong lap y
");
}
printf("da thoat vong lap i 
");
}
Henry viết 12:50 ngày 01/10/2018

Bạn hãy nhìn kĩ lại vòng for của bạn

    for(int y=0; y< 5; y++);
      {
        printf("gia tri cua i la %d gia tri cua y la %d \n",i, y);

         }

Sau for; do đó câu lệnh for sẽ dừng ở đó, còn cái scope ở dưới không hề bà con với câu lệnh for . Có nghĩa là nó đã chạy được 5 lần rồi, tiếp đến là sẽ chạy cái scope ở dưới của bạn

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

Bạn nên tránh việc khai báo 2 biến cùng tên trong cùng một Scope vì nó dễ gây khó hiểu cho bạn và cả máy tính là đang thực hiện với biến nào.

Canh Nguyen Duy viết 12:52 ngày 01/10/2018

em hiểu rồi ạ !! cảm ơn bác :v

Nguyen Kien viết 12:46 ngày 01/10/2018
for (int y = 0; y < 5; ++y); {
	
	 printf("gia tri cua i la %d gia tri cua y la %d \n",i, y);
}

  • Vòng for coi như mất tác dụng bạn chỉ cần bỏ dấu chấm phẩy đi là được nhưng lưu ý đừng có đặt tên biến tùy tiện nha !
Bài liên quan
0