c - C 中的单行 if 语句 - 哪些语句受到影响?

标签 c if-statement conditional-statements

我正在尝试将一些代码从 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/

相关文章:

JavaScript 三元运算符变成完整的 if/else 语句问题

Python 条件语句

sql - 查询字符长度的WHERE条件?

java - 在 Ant 中有条件地删除

c - 段错误,大数组

swift - if 语句执行自己而不是其他人

c - C 中 getchar 函数返回的值存储在 int 和 char 中的区别

javascript - IF 在 each() 内部不起作用

c - 链表编译错误

c - 动态链接器如何知道要在哪个库中搜索符号?