我正在尝试将一些代码从 C 语言翻译成另一种语言。我无法快速访问 C 编译器,只是发现自己对单行 if 语句感到困惑。我知道这样的陈述:
if (condition) [statement]
和
if (condition)
[statement]
可以在没有括号的情况下进行评估,即等同于:
if (condition) {[statement]}
和
if (condition)
{[statement]}
分别,但我不确定我正在处理的示例代码。它是:
if (ge.g[*l][*k].s==1) *i=1; else *i=Ne;
*j=*l;
我觉得第二行不受 if 语句的影响,但从代码的上下文来看并不是很明显。长话短说:以上是否等同于:
if (ge.g[*l][*k].s==1) {*i=1;} else {*i=Ne;}
*j=*l;
或
if (ge.g[*l][*k].s==1) {*i=1;} else {*i=Ne;
*j=*l;}
?
最佳答案
代码如下
if (ge.g[*l][*k].s==1) *i=1; else *i=Ne;
*j=*l;
当格式正确时是这样写的:
if (ge.g[*l][*k].s==1)
*i=1;
else
*i=Ne;
*j=*l;
这是带大括号的等效代码:
if (ge.g[*l][*k].s==1)
{
*i=1;
}
else
{
*i=Ne;
}
*j=*l;
这显示了代码格式正确的重要性,这样它不仅可以被编译人员阅读和理解,也可以被人类阅读和理解。
关于c - C 中的单行 if 语句 - 哪些语句受到影响?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45322620/