2017-11-04 3 views
6

선택자 옵션에서 두 개의 행성 A와 B를 선택하여 거리를 측정합니다. 예를 들어두 개의 || 그리고 PHP에서 같은 if 문에 &&?

:

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"; 
}