Cho đến nay, chúng tôi đã đề cập đến tổng cộng 5 hướng dẫn lập trình C. Mỗi hướng dẫn tập trung vào một chủ đề cụ thể. Trong quá trình bám sát chủ đề, một số khái niệm chung vẫn chưa được đề cập đến. Chúng tôi sẽ thảo luận về một số khái niệm đó trong hướng dẫn này.
Vậy thì chúng ta hãy bắt đầu.
Bạn luôn phải thụt lề đúng cách cho mã của mình. Đối với người mới bắt đầu, thụt lề là một phương pháp mà bạn đặt khoảng trắng/tab/dòng mới để mã trông dễ đọc hơn. Thông thường, các dòng mã liên kết với một khối hoặc vòng lặp được đặt ở cùng một khoảng cách. Ví dụ, đây là một mã không thụt lề:
Và đây là cùng một mã với thụt lề được áp dụng:
Vì vậy, bạn có thể thấy, mã thụt lề trông có vẻ được sắp xếp hợp lý và dễ đọc, dễ xem lại.
Bạn có thể đã nhận thấy trong các hướng dẫn trước, chúng tôi đã sử dụng cách sau để tăng một biến:
Mặc dù cách này không có gì sai, nhưng vẫn có một cách khác phổ biến và được sử dụng nhiều. Đó là sử dụng toán tử tăng.
Sử dụng cách này, giá trị của 'a' tăng thêm 1. Lưu ý rằng đây là apost-increment. Ngoài ra còn có toán tử tiền tăng:
Sự khác biệt giữa hai toán tử này nằm ở hậu tăng, biến được sử dụng trước rồi mới đến giá trị của nó nếu tăng. Mặt khác, trong pre-increment, giá trị được tăng lên trước rồi mới sử dụng biến.
Đoạn mã sau sẽ giải thích rõ hơn về sự khác biệt này.
Đầu ra của chương trình này là:
Vì vậy, bạn có thể thấy, trong khi post increment không phản ánh ngay lập tức, thì pre-increment đã phản ánh.
Logic tương tự cũng áp dụng cho các toán tử giảm.
Kết quả trả về là:
Có hai cách để bạn có thể chú thích mã trong C. Một là sử dụng '//'. Theo cách này, bạn chỉ có thể chú thích một dòng tại một thời điểm.
Cách khác là đặt /* .... */ xung quanh các dòng. Điều này cho phép bạn chú thích nhiều dòng cùng một lúc.
Cho đến bây giờ, chúng ta chỉ đề cập đến vòng lặp while, trong đó thực thi mã chỉ nhập khối while nếu điều kiện là đúng.
Cũng tồn tại một vòng lặp do-while, trong đó khối mã được thực thi một lần cho lần đầu tiên và sau đó điều kiện while được kiểm tra.
Bây giờ, câu hỏi đặt ra là khi nào sử dụng do-while? Tôi sẽ cho bạn một ví dụ. Giả sử bạn muốn người dùng nhập một giá trị lớn hơn 10 và yêu cầu là liên tục yêu cầu người dùng nhập giá trị đó cho đến khi chương trình nhận được một giá trị. Sau đây là cách vòng lặp do-while sẽ hữu ích trong trường hợp đó:
Vậy thì chúng ta hãy bắt đầu.
Bạn luôn phải thụt lề đúng cách cho mã của mình. Đối với người mới bắt đầu, thụt lề là một phương pháp mà bạn đặt khoảng trắng/tab/dòng mới để mã trông dễ đọc hơn. Thông thường, các dòng mã liên kết với một khối hoặc vòng lặp được đặt ở cùng một khoảng cách. Ví dụ, đây là một mã không thụt lề:
Mã:
#include
int main (void)
{
int c =0, counter=0;
c = getchar();
while(c != EOF)
{
c = getchar();
if(c == '\n')
counter = counter+1;
}
printf("Đầu vào chứa %d dòng", counter+1);
return 0;
}
Mã:
#include
int main (void)
{
int c =0, counter=0;
c = getchar();
while(c != EOF)
{
c = getchar();
if(c == '\n')
counter = counter+1;
}
printf("The input contains %d lines", counter+1);
return 0;
}
Bạn có thể đã nhận thấy trong các hướng dẫn trước, chúng tôi đã sử dụng cách sau để tăng một biến:
Mã:
a = a+1;
Mã:
a++
Mã:
++a
Đoạn mã sau sẽ giải thích rõ hơn về sự khác biệt này.
Mã:
#include
int main (void)
{
int a =0, b=0;
printf("a = %d", a++);
printf("\n b = %d", ++b);
return 0;
}
Mã:
a = 0
b = 1
Logic tương tự cũng áp dụng cho các toán tử giảm.
Mã:
#include
int main (void)
{
int a =1, b=1;
printf("a = %d", a--);
printf("\n b = %d", --b);
return 0;
}
Mã:
a = 1
b = 0
Mã:
// int a = 10;
// a = 9;
Mã:
/* int a = 10;
a = 9; */
Mã:
while(condition)
{
/*
dòng mã
dòng mã
...
*/
}
Mã:
do
{
// vài dòng mã
} while (condition);
Mã:
do
{
printf("Vui lòng nhập số lớn hơn 10: ");
scanf("%d", &n);
}while(n