Php 语句匹配那里的条件

Php 语句匹配那里的条件,php,conditional-statements,Php,Conditional Statements,我对他的情况有疑问。问题是: 三角形任意两条边的组合长度必须大于线段形成三角形的第三条边的长度。例如,8、6和12可以形成一个三角形,因为三段中任意两段的总和大于第三段。但是,24、5和15不能形成三角形,因为段5和15的总和不大于段24的长度 因此,我的编码如下: $aa = $_GET['a']; $bb = $_GET['b']; $cc = $_GET['c']; if(($aa + $bb > $cc) || ($bb + $cc > $aa) || ($aa + $cc

我对他的情况有疑问。问题是: 三角形任意两条边的组合长度必须大于线段形成三角形的第三条边的长度。例如,8、6和12可以形成一个三角形,因为三段中任意两段的总和大于第三段。但是,24、5和15不能形成三角形,因为段5和15的总和不大于段24的长度

因此,我的编码如下:

$aa = $_GET['a'];
$bb = $_GET['b'];
$cc = $_GET['c'];
if(($aa + $bb > $cc) || ($bb + $cc > $aa) || ($aa + $cc > $bb)){
    echo"Triangle";
}

else{
    echo"Not Triangle";
}
它可以运行,但是,我测试这些数字:8、6和12,并显示三角形。对于数字24、5和15,即使答案不是三角形,它也会显示三角形。谁能告诉我为什么?因为这三个条件都必须满足,而不是一个条件。替换

if(($aa + $bb > $cc) || ($bb + $cc > $aa) || ($aa + $cc > $bb)){


如果你认为三角形的两个较短的边的组合长度必须大于最长边的长度,那就更容易了。因此,如果你先按顺序对边长进行排序,这样你就知道哪些是最短的,哪些是最长的,那么if逻辑就简化了

// Put our lengths into an array so that we can manipulate them more esily
$sideLengths = array($_GET['a'],$_GET['b'],$_GET['c']);
// Sort the array so that it's shortest to longest
sort($sideLengths);
// Test the sum of the two short sides against the longest
if (($sideLength[0] + $sideLength[1]) > $sideLength[2])
    echo"Triangle";  
} else {  
    echo"Not Triangle";  
}

顺便说一句,这是家庭作业吗?如果是,则相应地标记。
// Put our lengths into an array so that we can manipulate them more esily
$sideLengths = array($_GET['a'],$_GET['b'],$_GET['c']);
// Sort the array so that it's shortest to longest
sort($sideLengths);
// Test the sum of the two short sides against the longest
if (($sideLength[0] + $sideLength[1]) > $sideLength[2])
    echo"Triangle";  
} else {  
    echo"Not Triangle";  
}