使用" OR"在" IF"声明

时间:2014-03-19 11:01:23

标签: java if-statement

对不起,这是一个非常简单的问题,但我无法想象。我试图在内部使用OR条件的嵌套IF语句。 这是代码:

if (positionE != -1){
   if (position == -1) || if (positionE < position)
                   position = positionE;
}

显然我错误地使用了OR条件,请有人指出正确使用。

这是我试图编码的伪代码:

If positionE is not -1  
   If position is -1 or positionE is less than position  
      position is positionE 

7 个答案:

答案 0 :(得分:2)

试试这个:

if(positionE != -1 && (position == -1 || positionE < position)){
   position = positionE;
}

答案 1 :(得分:0)

这样做

if (position == -1 || positionE < position)
               position = positionE;

答案 2 :(得分:0)

试试这个:

       if (positionE != -1){
       if (position == -1 || positionE < position)
               position = positionE;
    }

答案 3 :(得分:0)

尽量保持你的ifs清洁,这不仅仅是一种好的做法,对于未来的重构或修改来说非常重要。
  - 始终对if语句使用{}   - 如果没有必要,请不要嵌套if   - 使用()分隔&amp;&amp;和||提高可读性   - 如果结构变得复杂,首先在纸上写下来,或考虑分离陈述,也许你可以合并一些东西   - 此外,我建议对形式逻辑进行一些研究。

理想情况下,if应该看起来像这样:

if( (A && B) || (C && D) ){
 ... do something
}

if( (A || B) && (C || D) ){
 ... do something
}

如果你让它变得干净又漂亮,如果你必须改变一些东西,它会在以后付出代价。 如果我理解你,你的情况可以描述为

if( !A && (B || C)){
... do something
}

答案 4 :(得分:0)

if (positionE != -1){
   if (position == -1) || if (positionE < position)
                   position = positionE;
}

根据这些我们可以写下如下的条件

if(positionE != -1 && positionE < position) {
 position = positionE;
}

这里我们取消了positionE == -1条件,因为当且仅当positionE != -1

时,代码才会达到内部条件

答案 5 :(得分:-2)

正确的语法如下:

if (positionE != -1){
   if ((position == -1) || (positionE < position))
                   position = positionE;
}

必须在几个条件内写入。

答案 6 :(得分:-3)

使用此:

if (positionE!=-1) {
    if ((position==-1) || (positionE<position)) {
         position = positionE;
    }        
}