2016-04-23 4 views
-3

申し訳ありませんが、私の質問は非常にわかりにくいので、私の質問はもっと詳しく述べています。Java、Ifステートメント。それが真実ならば、真ならば2つの別々の方程式を持つことができますか?

例コード

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

それが真である場合、?: 値Imin = iScore + IMINとIMINはRUN1を=旨の簡単な方法があります。

問題は最初のループにあるため、iRun = iMinです。 2番目のループiRunには、現在のIminより小さい新しい値があります(iMinには最低の番号が入ります)。したがって、iMinは新しい小さな番号に置き換えられます。私はこの古い番号をキャッチして別の変数に追加したいと思います。

これはできますか?ありがとうございました

凍ったエンドウ豆のRoddyさん、私の貧弱な言葉に答えてくれてありがとうございます。

if(x < min) { 
previousMin = min; 
min = x;  <----- I was after if i could have a 2nd statement 

}

申し訳ありませんし、単一の変数にあなたのすべての

+0

複雑な説明です。ものを手に入れませんでした。より良い方法で表現してください(例がありますか?)。 –

+0

あなたが参照しているiRunとは何ですか?それはあなたのコードのどこにもありません。 –

+1

私が正しく理解していれば、あなたが望むのは、 'if(run1 [i] CantrianBear

答えて

0

いいえ、あなたは保存できない2つの異なる値に感謝します。 2つの異なる変数が必要です。ここ

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

Iは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は、新しい値を割り当てる前に以前の最小値を使用して作業を行う方法を示す簡単な操作です。

この2番目の解決策は、以前に識別された値を追跡して、それを永続化するのではなく操作で使用する必要がない場合にのみ機能します。

+1

というものであっても、実際には大きな値に初期化された方がいいでしょうか? – billjamesdev

+0

おそらくInteger.MAX_VALUEになります。それはすべてデータに依存します。正式には、nullの整数を使用し、ifを 'min == null || x

+0

それに応じて回答が更新されました。 –

関連する問題