gpt4 book ai didi

c++ - 'if' 语句中的逗号是什么意思?

转载 作者:IT老高 更新时间:2023-10-28 21:35:15 34 4
gpt4 key购买 nike

考虑:

for (auto i = 0; i < g.size(); ++i)
for (auto j = 0; j < g.size(); ++j) if (g[i][j] == 0) dfs(g, i, j), ++regions;
return regions;

我不喜欢一行代码。 if()中的代码执行了什么?

我被“,”符号弄糊涂了。

通常我会写成:

  for (auto i = 0; i < g.size(); ++i)
{
for (auto j = 0; j < g.size(); ++j)
{
if (g[i][j] == 0)
{
dfs(g, i, j)
}
,++regions; // I am not sure what to do here. Inside the "if" scope??
}
}
return regions;

最佳答案

程序员使用了comma operator在单个语句中提供两个不相关的表达式。因为它是一条语句,所以两个表达式都在 if 条件“内部”。

这是一个糟糕的 hack,最好用实际的 {} 大括号围绕两个语句来完成。

您的示例不等价;应该是:

if (g[i][j] == 0) 
{
dfs(g, i, j);
++regions;
}

关于c++ - 'if' 语句中的逗号是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56094137/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com