2012-05-07 8 views
1

ちょうど興味があるのは、「正しい順序」で分けるために使うことができる関数があるから、配当は常により大きい数値ですか?現在、私は私が配当が除数よりも大きいことを確認する機能はありますか?

MakeSureDividendBigger(X/Y)

タイプのことのように、1行でこれを行うために使用できる機能があった場合、私はちょうど思っていたこの

x=5 
y=10 
z=0 

if x>y{ 
z = x/y 
}else{ 
z = y/x 
} 

を行います。

おかげ

+1

一般的なケースでは「正しい順序」はありません。あなたがちょうど2つのオペランドを任意に反転させると、ほとんどの計算が意味をなさないでしょう。 – cHao

+0

あなたはいつもあなた自身の関数を作成することができます... –

答えて

7

Javascriptを:

var z = Math.max(x, y)/Math.min(x, y); 

または関数:

function divideNice(x, y) { 
    return Math.max(x, y)/Math.min(x, y); 
} 

var z = divideNice(x, y); 

PHP:

$z = max($x, $y)/min($x, $y) 
+0

私は正直なところ、なぜこれらのようなもっとも単純な答えであるのか分かりません。 :) –

3

私はこのための特別な機能があります疑うが、可能な1行のソリューションを使用するternary conditional operator次のとおりです。

$z = $x > $y ? $x/$y : $y/$x; // PHP 

var z = x > y ? x/y : y/x;  // JavaScript 
+0

申し訳ありませんが、私はよく知らないですか?そして:それはどういう意味ですか?そして私はそれをGoogleにすることはできません。 – user1159454

+0

これは、「三位一体演算子」と呼ばれます。これは 'if ... else'と同じですが、1行に書かれています。 – VisioN

+0

? trueの場合はtrueを返し、そうでない場合はコロンの後の値を返します。 – pdizz

1

あなたはMath.maxMath.minを使用することができます。

またはMozilla(Firefoxの)中Math.max

  • Math.min
    • Math.max(x,y)/Math.min(x,y) 
      

      あなたは簡単にスワップを行うことができます。

      if(x < y) 
          [x,y] = [y,x] 
      
      x/y 
      

      これはdestructuring assignmentと呼ばれます。

  • +0

    「Mozilla」ではどういう意味ですか? –

    +0

    @ElliotBonneville:Firefoxに含まれているMozillaプロジェクトのJavaScript実装を意味しました。 –

    +0

    ああ、大丈夫です。明確化のためにありがとう。 –

    関連する問題