Java,If Statement。如果它是真的,如果它是真的,我可以有2个单独的方程吗?

时间:2016-04-23 04:28:25

标签: java

好的,所以我的问题很难理解对不起,所以更详细地提到了我的问题。

示例代码

<svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
    <title>Test</title>
  <defs>
    <filter id="directional-blur" x="-50%" width="200%">
      <feGaussianBlur stdDeviation="3 0"/>
      <feOffset dx="-2"/>
      <feMorphology operator="erode" radius="1"/>
      <feComposite operator="over" in="SourceGraphic"/>
    </filter>
  </defs>
      <circle filter="url(#directional-blur)" class="cls-1" cx="50" cy="22" r="12" >
        <animateTransform attributeName="transform"
        attributeType="XML"
        type="rotate"
        from="0 50 50"
        to="360 50 50"
        dur="2s"
        repeatCount="indefinite" />
      </circle>  
</svg>

是否有一种简单的方式表明如果它是真的那么?: iMin = iScore + iMin和iMin = run1。

因为问题出在第一个循环上,所以iRun = iMin。 第二个循环iRun有一个新的值,比当前的Imin小(iMin保持我输入的最小数字),所以iMin被一个新的较小的数字取代。我想抓住这个旧数字并将其添加到另一个变量。

可以这样做吗?谢谢

感谢冷冻豆豆的罗迪回答我措辞不好的问题。

    for (int i = 1; i<run1.length; i++)
    { if (run1[i]< iMin)
        iMin = run1[i];      //<-this is what im asking about
    }

}

抱歉,谢谢大家

1 个答案:

答案 0 :(得分:0)

不,您不能在一个变量中存储两个不同的值。你需要两个不同的变量。

int min = Integer.MAX_VALUE;
int previousMin = Integer.MAX_VALUE;
for( int x : numbers) {
  if( x < min ) {
    previousMin = min;
    min = x;
  }
}

在这里,我将数组中的最小值存储在min中,并将先前找到的最小值存储在previousMin中。

关键是你需要分别跟踪这些值。

如果您只想在找到新的最大值时进行一次性数学运算,并且不再需要存储前一个最小值,则可以之前分配新的最小值。

Integer min = null;
for ( int x : numbers ) {
  if( min == null || x < min ) {

    // if we're overriding a previously found min,
    // then min won't be null
    if( min != null ) {
      // do math with previous min
      sum += min;
    }

    // assign the new min
    min = x;
  }
}

在这里,我使用Java的Integer包装类来跟踪最小值,以便区分找到第一个最小值和查找后续最小值的场景。 sum += min是一个简单的操作,显示在分配新值之前如何使用前一个最小值进行工作。

第二种解决方案只有在您不需要跟踪以前识别的值并且只是在操作中使用而不是持久化时才有效。