检查IF ELSE语句是否有效

时间:2014-05-06 11:14:05

标签: c if-statement

我一直在努力理解为Z80微控制器编写的C代码。编码器是自学成才,不幸的是,代码缺乏风格和可读性。除了充满goto语句的代码之外,整个地方的间距和对齐也非常混乱。

我参加了一些IF ELSE声明如下:

if(value1==1){
  code();        
}        
else 
if(value2==1) {
  othercode();
}

与以下内容相同:

1

if(value1==1){
  code();        
}        
else if(value2==1) {
  othercode();
}

2

if(value1==1){
  code();        
 }        
if(value2==1) {
  othercode();
}

所以在我提交更改所有代码之前,我最好检查一下。

5 个答案:

答案 0 :(得分:6)

代码1与原始代码完全相同。你刚刚更改了缩进。

代码2的行为与原始代码不同。

代码1表示如果value1 == 1为真,则执行code()否则检查value2 == 1是否为真,然后执行othercode()

<强>虽然

代码2表示如果value1 == 1为真,请执行code(),然后检查value2 == 1是否为真,然后执行othercode()

因此,简而言之,在第一种情况下,如果else块的计算结果为true,则不会检查if条件。在第二种情况下,将在所有情况下检查if两个。

答案 1 :(得分:2)

前两个是相同的:

else 
if(value2==1) {
  othercode();
}

与:

相同
else if(value2==1) {
  othercode();
}

这是不同的:

if(value1==1){
  code();        
 }        
if(value2==1) {
  othercode();
}

在前两种情况下,如果满足else条件,控件将不会转到if。但在最后一种情况下,它将始终检查两个if语句。

答案 2 :(得分:1)

选项1等同于原始代码。

答案 3 :(得分:0)

if(value1==1){
  code();        
}        
else if(value2==1) {
  othercode();
}

这类似于您提供的代码

if(value1==1){
  code();        
} 

else //其他人会检查一个语句,现在下一个状态是if,所以它类似于else if

  if(value2==1) {
      othercode();
    }

答案 4 :(得分:0)

代码1与原始代码完全相同。