一、最基础的写法
cs
if (score >= 60)
{
Console.WriteLine("及格");
}
else
{
Console.WriteLine("不及格");
}
不建议省略大括号,哪怕只有一行代码
cs
if (isValid)
DoA();
DoB();
以为是这样:
cs
if (isValid)
{
DoA();
DoB();
}
实际上:
cs
if (isValid)
{
DoA();
}
DoB(); // 永远执行
二、if 嵌套问题
多个 if 嵌套,屎山
cs
if (user != null)
{
if (user.IsActive)
{
if (user.Role == "Admin")
{
DoSomething();
}
}
}
改写:
cs
if (user == null) return;
if (!user.IsActive) return;
if (user.Role != "Admin") return;
DoSomething();
三、else if 顺序问题
错误案例:
cs
if (score >= 60)
{
Console.WriteLine("及格");
}
else if (score >= 90)
{
Console.WriteLine("优秀");
}
正确写法:
cs
if (score >= 90)
{
Console.WriteLine("优秀");
}
else if (score >= 60)
{
Console.WriteLine("及格");
}
四、if 条件不宜过长
cs
if (user != null && user.IsActive && user.Role == "Admin" && user.Age > 18)
可以拆分:
cs
bool isValidAdmin =
user != null &&
user.IsActive &&
user.Role == "Admin" &&
user.Age > 18;
if (isValidAdmin)
{
DoSomething();
}
五、if + return 的正确使用方式
先排除失败条件
cs
if (!File.Exists(path))
{
Log("文件不存在");
return;
}
ProcessFile(path);
六、总结
- 加大括号
- 避免深层嵌套
- 复杂条件拆变量
- 失败条件优先 return