2017-11-04 19 views
6

距離を測定するためにセレクターオプションで2つの惑星AとBを選択します。例えば2つの|| PHPのif文と同じ&&の1つです。

if (($planetA == "Nova Terra" || $planetB == "Nova Iaponia") && ($planetA == "Nova Iaponia" || $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if (($planetA == "Nova Terra" || $planetB == "Novo Mars") && ($planetA == "Novo Mars" || $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
} 

あなたが "ノヴァテラノヴァからIaponiaにORノヴァテラノヴァにIaponiaから" をお読みください。 To =と。

これが好きに似ています

if ($planetA == "Nova Terra" || $planetB == "Nova Iaponia") 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if ($planetA == "Nova Iaponia" || $planetB == "Nova Terra") 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if ($planetA == "Nova Terra" || $planetB == "Novo Mars") 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
} 

else if ($planetA == "Novo Mars" || $planetB == "Nova Terra") 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
} 
+1

あなたは、(それが構文的に有効です)この操作を行う「ことができます」が、論理は間違っています。 planetAとplanetBの両方が "Nova Terra"の場合、290パーク秒のメッセージが表示されます。 –

+0

これは私が言及している問題です。正しい論理が4つのステートメントに分割されるのでしょうか?しかし、私はコードを短縮し、経済化したい。 –

答えて

4

あなたはちょうどあなたが望む結果を得るためにあなたの論理演算子を交換する必要が

if (($planetA == "Nova Terra" && $planetB == "Nova Iaponia") || ($planetA == "Nova Iaponia" && $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 290 parsecs"; 
} 

else if (($planetA == "Nova Terra" && $planetB == "Novo Mars") || ($planetA == "Novo Mars" && $planetB == "Nova Terra")) 
{ 
    echo "From $planetA to $planet B: 230 parsecs"; 
} 
関連する問題