有效地测试四个数字中的三个是否相等?

时间:2017-05-01 02:53:40

标签: php if-statement

我正在尝试确定一种快速选择数字集的方法(它们将在数组中)。我只需要保留两个或多个数字大于零的集合;因此,可以丢弃包括零三次的集合。我已经提出了以下代码,但它没有预期的结果,任何建议将不胜感激。

<?php
function testFour($a, $b, $c, $d)
{
  if(($a + $b + $c + $d) == ($a || $b || $c || $d)) {
      echo $a.", ".$b.", ".$c.", ".$d." => exclude<br>";
    } else {
      echo $a.", ".$b.", ".$c.", ".$d." => keep<br>";
    }
}
echo "<pre>";
testFour(0,0,0,5); // true
testFour(1,0,0,5); // false
testFour(0,4,2,0); // false
testFour(1,1,0,5); // false
testFour(0,2,0,0); // true
testFour(2,3,0,0); // false
echo "</pre>";

2 个答案:

答案 0 :(得分:3)

尝试一下:

double number1 = 0.00;
double answer = 0.00;
double number2 = 0.00;

if (double.TryParse(Number1TextBox.Text, out number1)
    && double.TryParse(Number2TextBox.Text, out number2))
{
    answer = number1 + number2;
    AnswerLabel.Text = "The answer is: " + answer.ToString();                             
}
else
{
    InvalidLabel.Text = "Please enter a Numeric Digit";
}

答案 1 :(得分:-1)

以下将根据需要执行任意数量的值:

wcout

之所以行之有效,是因为array_filter通过回调确定每个数组值是否为true,如果没有提供回调,则将删除条目(转换为function testFour(...$bools) { $threshold = 3; return count($bools) - count(array_filter($bools)) >= $threshold; } 之后)。同样,将boolean作为参数将单独传递的参数转换为...$bools

您还可以:

  • 动态计算array
  • 传递一个参数传递一个$threshold值,而不是每个值