我昨天遇到了这一行代码:
if(flag[j] == 0) q.push(j), flag[j]=1, val[j]=0, parent[j]=p;
我不知道我们可以像这样写多行if语句,也找不到任何与此相关的文章。使用它有什么缺点吗?
if
语句适用于单个语句。通常,您需要使用花括号将多个语句合并为一个语句。
在您的示例中,使用的是comma operator。我想不出这样做的任何充分理由,如果您需要使用多个表达式,请使用花括号。使用逗号更难以阅读,并且会使非c ++专家困惑(甚至有些专家,逗号运算符不是该语言的广泛使用的一部分)。