检查IF ELSE语句是否有效

aly*_*ans 0 c if-statement

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

我已经看到一些IF ELSE声明如下:

if(value1==1){
  code();        
}        
else 
if(value2==1) {
  othercode();
}
Run Code Online (Sandbox Code Playgroud)

这是一样的:

1.

if(value1==1){
  code();        
}        
else if(value2==1) {
  othercode();
}
Run Code Online (Sandbox Code Playgroud)

要么

2.

if(value1==1){
  code();        
 }        
if(value2==1) {
  othercode();
}
Run Code Online (Sandbox Code Playgroud)

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

Don*_*ild 6

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

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

代码1表示if value1 == 1为true,执行code()else检查if是否value2 == 1为true,然后执行othercode().

代码2表示if value1 == 1为true,执行code()并现在检查是否value2 == 1为true,然后执行othercode().

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