为我提供了这段代码,它有一个带两组大括号的If语句。我假设这是一个if else语句,但是没有'else'
/usr/sbin/mysqld r
/proc/*/status r
/sys/devices/system/node/ r
/sys/devices/system/node/node0/meminfo r
根据我的断点,它运行正常,没有任何错误,所以我不确定。
答案 0 :(得分:8)
这只是一个任意代码块。花括号在这里什么也没有做。他们可以被删除。其功能与以下内容相同:
if (Value.Contains("WMD ESA"))
{
UsersInfo.Add(Benefit.ToString());
}
UsersInfo.Add(((decimal)Benefit.Amount().ToString());
如果要这样做,则应将其 删除,因为这很令人困惑(在我的经验中并不常见)。尽管只是确保不要使用else
!
答案 1 :(得分:0)
要理解和解决您的问题,您必须学习语句的工作方式。
声明:
常见操作包括根据给定条件声明变量,分配值,调用方法,遍历集合以及分支到一个或另一个代码块。
声明类型不同
声明语句。
表达语句。
选择语句。
迭代语句。
跳转语句。
异常处理语句。
已选中和未选中。
在这种情况下,我们使用选择语句。
代码:
弯括号通常用于赋予作用域,但它们是可选的。
如果我们检查您的代码,则有第一个带有花括号的if,在if括号内声明的任何对象仅在if的作用域内可见,对于第二个花括号,将自动有任何语句属于父范围
代码1:
if (Value.Contains("WMD ESA"))
{
UsersInfo.Add(Benefit.ToString());
}
{
UsersInfo.Add(((decimal)Benefit.Amount().ToString());
}
代码2:
if (Value.Contains("WMD ESA"))
{
UsersInfo.Add(Benefit.ToString());
}
UsersInfo.Add(((decimal)Benefit.Amount().ToString());
最后,代码1和代码2在逻辑上是等效的。