Mỗi khai báo phải dành cho một biến duy nhất, trên dòng riêng của nó, với chú thích giải thích về vai trò của biến đó. Khai báo nhiều biến trong một lần khai báo có thể gây nhầm lẫn về kiểu của biến và giá trị ban đầu của chúng. Nếu có nhiều hơn một biến được khai báo trong một khai báo, phải cẩn thận rằng kiểu và giá trị khởi tạo của biến được xử lý chính xác Show
Ví dụ về mã không tuân thủTrong ví dụ mã không tuân thủ này, lập trình viên hoặc người đánh giá mã có thể nhầm tưởng rằng hai biến #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }3 Giải pháp tuân thủTrong giải pháp tuân thủ này, mỗi biến được khai báo trên một dòng riêng char *src; /* Source string */ char c; /* Character being tested */ Mặc dù thay đổi này không ảnh hưởng đến quá trình biên dịch, nhưng ý định của lập trình viên rõ ràng hơn Ví dụ về mã không tuân thủTrong ví dụ về mã không tuân thủ này, lập trình viên hoặc người đánh giá mã có thể nhầm tưởng rằng cả #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }4 và #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }0 đều đã được khởi tạo thành 1. Trên thực tế, chỉ có #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }0 được khởi tạo, còn #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }4 vẫn chưa được khởi tạo Giải pháp tuân thủTrong giải pháp tuân thủ này, rõ ràng là cả #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }4 và #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }0 đều đã được khởi tạo thành 1 ngoại lệDCL04-C-EX1. Nhiều biến điều khiển vòng lặp có thể được khai báo trong cùng một câu lệnh #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }5, như thể hiện trong hàm sau #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; } Macro #include /* For CHAR_BIT */ #include /* For size_t */ extern size_t popcount(uintmax_t); #define PRECISION(umax_value) popcount(umax_value) size_t bitcount(size_t n) { const size_t limit = PRECISION(SIZE_MAX); size_t count = 0; for (size_t i = 0, j = 1; i < limit; ++i, j <<= 1) { if (n & j) ++count; } return count; }6 cung cấp độ chính xác chính xác cho bất kỳ loại số nguyên nào và được xác định trong INT35-C. Sử dụng độ chính xác của số nguyên—xem quy tắc đó để biết thêm thông tin DCL04-C-EX2. Nhiều khai báo biến đơn giản có thể được khai báo trên cùng một dòng với điều kiện là không có khởi tạo. Một khai báo biến đơn giản là một khai báo không phải là con trỏ hoặc mảng Đánh giá rủi roKhai báo không quá một biến cho mỗi lần khai báo có thể giúp mã dễ đọc hơn và loại bỏ sự nhầm lẫn Deepanshu thành lập ListenData với một mục tiêu đơn giản - Làm cho các phân tích trở nên dễ hiểu và dễ theo dõi. Ông có hơn 10 năm kinh nghiệm trong lĩnh vực khoa học dữ liệu. Trong nhiệm kỳ của mình, ông đã làm việc với các khách hàng toàn cầu trong nhiều lĩnh vực khác nhau như Ngân hàng, Bảo hiểm, Cổ phần tư nhân, Viễn thông và Nhân sự Có một loại dữ liệu; . Một tuyên bố kết thúc bằng một dấu chấm phẩy. Nhiều biến đã được khai báo ở đây trong một câu lệnh Bây giờ, hãy xem xét các báo cáo gia tăng sau đây int i++; Ba câu lệnh này có thể được thay thế bằng một câu lệnh, như sau int i++, j++, k++; Ở đây, có ba biểu thức trong một câu lệnh cho một kiểu dữ liệu Cũng xem xét ba tuyên bố có điều kiện sau đây i < 10 ; Ba câu lệnh này, có thể được thay thế bằng một câu lệnh, như sau i < 10 && j < 10 && k < 10; Ở đây, ba mệnh đề đã được kết hợp thành một biểu thức có dạng đặc biệt. Các biểu thức này không được phân tách bằng dấu phẩy như trong các trường hợp trên mà được kết hợp với nhau bằng phép AND Bài viết này giải thích cách khai báo và sử dụng nhiều biến trong vòng lặp for với các tương ứng thông thường. Các ví dụ rất đơn giản được sử dụng để minh họa Nội dung bài viết
Vòng lặp for một chiềutrong khi lặp lạiMột vòng lặp while để hiển thị các số từ 0 đến 9, như trong chương trình sau #include Dòng đầu tiên trong chương trình bao gồm thư viện iostream cho đối tượng cout. Dòng tiếp theo trong chương trình là một câu lệnh. Nó đảm bảo rằng bất kỳ tên nào được sử dụng là từ thư viện chuẩn C++ trừ khi có chỉ định khác Trong hàm main() có câu lệnh khởi tạo, của số nguyên, i = 0. Sau đó, có vòng lặp while, có tính đến câu lệnh khởi tạo. Điều kiện while là (i < 10), và miễn là i nhỏ hơn 10 (không bao giờ bằng 10), đối tượng cout iostream trong phần thân của vòng lặp while hiển thị giá trị của i. Câu lệnh tiếp theo trong vòng lặp while tăng i (thêm 1 vào giá trị của i) Đầu ra như sau nhưng được hiển thị theo chiều dọc 0 1 2 3 4 5 6 7 8 9 Một chiều cho vòng lặpMã trong hàm main() ở trên, được sao chép, trong chương trình sau, dưới dạng vòng lặp for #include Đầu ra giống như trong trường hợp trên. Câu lệnh khởi tạo cho đoạn mã trên bây giờ là câu lệnh đầu tiên trong dấu ngoặc đơn của vòng lặp for, theo sau là dấu chấm phẩy. Điều kiện trong khi cho đoạn mã trên bây giờ là câu lệnh thứ hai trong dấu ngoặc đơn của vòng lặp for, theo sau là dấu chấm phẩy. Câu lệnh gia tăng trong phần thân của vòng lặp while, đối với đoạn mã trước, bây giờ là câu lệnh thứ ba trong ngoặc đơn của vòng lặp for. Nó không được theo sau bởi dấu chấm phẩy vì nó là câu lệnh cuối cùng trong ngoặc đơn. Câu lệnh duy nhất trong vòng lặp for hiển thị giá trị của i Vòng lặp for hai chiềuVòng lặp while lồng nhauVòng lặp for một chiều ở trên hiển thị một cột, trong đó mỗi ô có một số, giá trị của i. Một vòng lặp while, được lồng trong một vòng lặp while khác, sẽ hiển thị một bảng, trong đó mỗi ô sẽ có một số (giá trị của j tại vị trí đó). Chương trình sau minh họa điều này #include đầu ra là 0 1 2 3 4 Biến i xác định các hàng. Biến j xác định các cột. Các giá trị tối đa cho i và j là 4 trong mã này. Không có giá trị của tôi được in. Đối với mỗi giá trị của j, giá trị của j được in theo chiều ngang. j được tăng lên để in giá trị tiếp theo theo chiều ngang cho mỗi dòng Có hai câu lệnh khởi tạo. một cho i và một cho j, cả hai đều được khởi tạo bằng 0. Câu lệnh khởi tạo cho j nằm trong vòng lặp bên ngoài. Bằng cách này, j được khởi tạo lại cho mỗi hàng (từng đường ngang). Bằng cách này, j có thể tạo ra các số từ 0 đến 4 cho mỗi hàng. Giá trị của i không bao giờ được in; . i được tăng lên bên ngoài và bên dưới vòng lặp lồng nhau. i được tăng lên cho mục đích của hàng tiếp theo Vòng lặp lồng nhauVòng lặp for lồng nhau sau đây tạo ra cùng một kết quả (bảng) như vòng lặp while lồng nhau ở trên #include Mỗi dấu ngoặc đơn của vòng lặp for có câu lệnh khởi tạo riêng, câu lệnh điều kiện riêng và câu lệnh gia tăng riêng Một vòng lặp whileĐầu ra của bảng trên có thể được tạo bởi một vòng lặp while, với một câu lệnh khởi tạo và một câu lệnh điều kiện. Tuy nhiên, việc gán lại 0 cho j và tăng i phải xảy ra trong cấu trúc if. Đoạn mã sau minh họa điều này #include Đầu ra là cùng một bảng như trên Một vòng lặp forĐầu ra của bảng trên có thể được tạo bởi một vòng lặp for, với một câu lệnh khởi tạo và một câu lệnh điều kiện. Tuy nhiên, việc gán lại 0 cho j và tăng i phải xảy ra trong cấu trúc if. Chương trình sau minh họa điều này #include Đầu ra là cùng một bảng như trên. Tuy nhiên, ở đây, vì j được tăng lên ở cuối vòng lặp, nên trong ngoặc đơn, điều kiện if là (j == 4) và j được gán lại, -1 cho mỗi hàng Điều đặc biệt ở đây là hai biến đã được khai báo trong vòng lặp for. Và như vậy, nhiều biến có thể được khai báo trong vòng lặp for Địa chỉ đường chéo hàng đầuTrong một bảng hình vuông, đường chéo chính là đường chéo từ đầu trên cùng bên trái đến cuối cùng bên phải. Chương trình sau hiển thị tọa độ của đường chéo chính của bảng trên #include đầu ra là 0 , 0 1,1 2,2 3,3 4,4 Lưu ý rằng trong chương trình, hai biến đã được khai báo trong dấu ngoặc đơn của vòng lặp for; . Trong điều kiện này, một câu lệnh trong phần thân của vòng lặp for sẽ in tọa độ của đường chéo chính Vòng lặp for ba chiềuViệc in tất cả các giá trị của các ô của một khối lập phương có thể rất cồng kềnh. Chương trình sau đây chỉ in tọa độ của đường chéo chính của một khối lập phương #include đầu ra là 0 , 0 , 0 1,1,1 2,2,2 3,3,3 4,4,4 Lưu ý rằng câu lệnh khởi tạo có ba biến; . Chỉ có một câu lệnh trong phần thân của vòng lặp for lợi thế có thểHãy xem xét một vòng lặp for duy nhất để hiển thị tất cả các giá trị của các ô trong bảng vuông. Tuy nhiên, nếu chỉ truy cập các giá trị được chọn trong bảng, thì việc có hai biến, trong câu lệnh khởi tạo, trong câu lệnh điều kiện và trong câu lệnh gia tăng, sẽ mang lại lợi thế về tốc độ; . Trong chương trình sau, mọi cặp tọa độ khác, trong đường chéo chính, được in #include đầu ra là 0 , 0 2,2 4,4 6,6 8,8 Vẫn chỉ có một câu lệnh trong vòng lặp for. Đạt được lợi thế về tốc độ, theo cách này, liên quan đến việc bao gồm logic chọn lọc bổ sung trong câu lệnh điều kiện và/hoặc trong câu lệnh gia tăng. Các biểu thức khởi tạo trong câu lệnh khởi tạo có thể không phải được khởi tạo bằng 0 Trong đoạn mã trên, câu lệnh gia tăng là i+= 2 ,j+= 2 nghĩa là, i = i+ 2 , j = j+ 2; Sự kết luậnCó, tôi có thể khai báo nhiều biến trong vòng lặp for. Và bạn cũng có thể khai báo nhiều biến trong vòng lặp for như sau. Chỉ cần tách nhiều biến trong câu lệnh khởi tạo bằng dấu phẩy. Đừng quên kết thúc câu lệnh khởi tạo hoàn chỉnh bằng dấu chấm phẩy. Nếu việc truy cập các phần tử của cấu trúc phải được chọn lọc, thì các biến này cũng có thể phải được sử dụng, trong các câu lệnh điều kiện và/hoặc tăng dần, trong các dấu ngoặc đơn của vòng lặp for, có thể với một số logic bổ sung Bạn có thể đặt nhiều điều kiện trong câu lệnh if trong C không?Cũng có thể có nhiều điều kiện như trong C nếu x xảy ra thì thực hiện p, ngược lại nếu điều kiện y xảy ra thì thực hiện q, ngược lại thực hiện r. Điều kiện này của C else-if là một trong nhiều cách nhập nhiều điều kiện.
Câu lệnh IF có 3 điều kiện trong C có được không?Có, bạn có thể . Bạn sẽ sử dụng toán tử 'và' '&&' cho điều đó. nếu điều kiện A và điều kiện B và điều kiện C.
Tôi có thể viết 2 điều kiện trong câu lệnh if không?Sử dụng hai câu lệnh if nếu cả hai điều kiện của câu lệnh if có thể đúng cùng một lúc . Trong ví dụ này, cả hai điều kiện đều có thể đúng. Bạn có thể vượt qua và làm tốt cùng một lúc. Sử dụng câu lệnh if/else nếu hai điều kiện loại trừ lẫn nhau, nghĩa là nếu một điều kiện đúng thì điều kiện kia phải sai.
Bạn có thể kiểm tra nhiều điều kiện trong một câu lệnh không?Sau đây chúng ta sẽ nghiên cứu cách kiểm tra nhiều điều kiện trong một câu lệnh if. Điều này có thể được thực hiện bằng cách sử dụng 'và' hoặc 'hoặc' hoặc CẢ HAI trong một câu lệnh duy nhất . và so sánh = để điều này hoạt động bình thường, cả hai điều kiện được cung cấp phải đúng. Nếu điều kiện đầu tiên sai, trình biên dịch sẽ không kiểm tra điều kiện thứ hai. |