Câu lệnh nào sau đây không bị lỗi khi biên dịch:
Trả lời:
Đáp án đúng: D
Câu hỏi này kiểm tra kiến thức về cú pháp câu lệnh if trong C#. Cụ thể, điều kiện trong câu lệnh if phải là một biểu thức boolean (tức là, có giá trị là true hoặc false).
- Phương án 1:
int i = 2; if(i = 1) Console.WriteLine(i);Câu lệnh này gán giá trị 1 cho biếni(i = 1) và giá trị này (là 1) không phải là kiểu boolean, gây ra lỗi biên dịch trong C#. Trong C#, phép gán không trả về giá trị boolean một cách mặc định như trong C/C++. Do đó câu lệnh if sẽ không nhận được giá trị boolean, gây ra lỗi biên dịch. - Phương án 2:
if(2) Console.WriteLine(i);Số 2 không phải là một biểu thức boolean. Trong C#, điều kiện trongifphải là kiểubool. Vì vậy, câu lệnh này sẽ gây ra lỗi biên dịch. - Phương án 3:
int i = 2; if(i) Console.WriteLine(i);Tương tự như phương án 2, biếnicó kiểuint, không phảibool. Trong C#, bạn không thể sử dụng một giá trị số nguyên trực tiếp làm điều kiện trong câu lệnhifmà không có so sánh rõ ràng. Do đó, câu lệnh này sẽ gây ra lỗi biên dịch. - Phương án 4:
int i = 2; if(i == 1) Console.WriteLine(i);Câu lệnh này so sánh giá trị củaivới 1 (i == 1). Kết quả của phép so sánh này là một giá trị boolean (truenếuibằng 1,falsenếu không). Vì vậy, đây là một biểu thức boolean hợp lệ để sử dụng trong câu lệnhifvà không gây ra lỗi biên dịch.
Vậy, chỉ có phương án 4 là không bị lỗi khi biên dịch.





