如何使5的条件只有1如果2否则1其他?

时间:2019-09-11 15:11:36

标签: php

我有如下条件。

>80 category A
71-80 category AB 
51-70 category B
41-50 category BC 
<40 category C

我需要编写满足以上条件的代码。但只有 1,如果 2,如果 另外1个

我发现我需要设置默认的类别值,但是仍然不能达到预期的结果

$category= "C";
$value = "10";

if ($value > 80) {
  $category = "A";
}else if ($value <= 70 AND $value > 50) {
  $category = "B";
}else if ($value <= 80 AND $value > 70) {
  $category = "AB";
}else{
  $category = "BC";
}

echo $category;

我想这样输出

90 = A 
72 = AB
55 = B 
45 = BC
10 = C 

但是我的代码显示在下面

90 = A 
72 = AB
55 = B 
45 = BC
10 = BC 

7 个答案:

答案 0 :(得分:2)

如果要限制关键字ifelseelse if,则可以在最后一个关键字中使用三元运算符。

function getCat($val)
{
    $cat = '';

    if ($val >= 81) {
        $cat = 'A';
    } else if ($val >= 71 && $val <= 80) {
        $cat = 'AB';
    } else if ($val >= 51 && $val <= 70) {
        $cat = 'B';
    } else {
        $cat = $val < 40 ? 'C' : 'BC';
    }

    return $cat;
}

这里是demo

但是有一个问题。如果值为40,它将得到BC,但是您从未为该数字编写任何规则,所以它就是它了。

答案 1 :(得分:2)

您可以执行以下操作:

<?php

$value = 81;
$edge_cases = ['C','A'];

$category = '';

if($value > 40 && $value <= 50){
    $category = 'BC';
}else if($value > 50 && $value <= 70){
    $category = 'B';
}else if($value > 70 && $value <= 80){
    $category = 'AB';
}else{
    $quotient = intval($value / 80);
    $index = abs(intval($quotient / (($quotient - 1) | 1)));
    $category = $edge_cases[$index];
}

echo $category;

演示: https://3v4l.org/78S4p

尽管最好在范围之间进行划分并获得仅作为01的2个选项的商,但这是做相同事情的另一种方法。

在上面的代码中,如果1,我们确保始终将索引获取为$quotient > 0,否则将其自身设为0

答案 2 :(得分:2)

如何处理,仅使用一个if语句,并且您说您希望在其中一个注释中使用数组解决方案:

$categories = [
   '80' => 'A',
   '71' => 'AB',
   '51' => 'B',
   '41' => 'BC',
];

$value = "10";
$category= "C";
foreach ($categories as $minVal => $cat) {
  if ($value >= $minVal) {
     $category = $cat;
     break;
  }
}

echo $category;

答案 3 :(得分:2)

尝试这个。

if ($value < 40 ) {
    $category = "C";
}else if ($value <= 50 && $value != 40) {
    $category = "BC";
}else if ($value <= 70 ) {
    $category = "B";
}else{
    $category = $value > 80 ? "A" : "AB";
}

答案 4 :(得分:1)

如果允许使用三元数,则可以执行以下操作:

if ($value > 80) {
    $category = 'A';
} else if ($value > 70) {
    $category = 'AB';
} else if ($value > 50) {
    $category = 'B';
} else {
    $category = $value > 40 ? 'BC' : 'C';
}

@u_mulder也一样^^

答案 5 :(得分:1)

对不起-我想我完全没有指出要点,但我想我会为娱乐提供更多答案,并作为问题的完全替代方案。我提出了no if解决方案...

$category = ['C', 'C', 'C', 'C', 'BC', 'B', 'B', 'AB', 'A', 'A' ];

echo $category[min(max(floor(($value-1)/10),0),9)];

我最终添加了min()max(),以确保它不会出现-1或101错误。

如果人们认为我的答案应该删除,请告诉我,因为我没有回答原始问题:-/

答案 6 :(得分:1)

这是应该满足条件的一种方式。 .current{ background: red; } nav ul{ list-style: none; } li{ cursor: pointer; padding: 20px; } li:hover{ background: red; } .mainNav ul{ display: flex } .mainNav ul li{ margin-right: 30px; text-decoration: none; } .collegeTypeNav{ background: #c4d8ff; } .collegeTypeNav ul{ display: flex; margin-left: 100px; } .collegeTypeNav ul li{ margin-right: 10px; } .middleContent{ display: flex; } .aboutCollegeNav{ background: #d1ffe4; } .aboutCollegeNav ul{ padding: 0px; } .aboutCollegeNav ul li{ margin-bottom: 10px; } .mainContent{ margin-left: 50px; }显然不是必须的。

<!DOCTYPE html>
<html lang="en">

<head>
   <meta charset="UTF-8">
   <title>Document</title>
   <link rel="stylesheet" href="styles.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
   <script src="scripts.js"></script>
</head>

<body>
   <header>
      <nav class="mainNav">
         <ul>
            <li><a href="#">Link1</a></li>
            <li><a href="#">Link2</a></li>
            <li><a href="#">Link3</a></li>
            <li><a href="#" class="current">About Majors</a></li>
         </ul>
      </nav>
   </header>
   <section class="collegesIntro">
      <div>
         <h1>ABOUT MAJORS</h1>
         <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et
            dolore
            magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea
            commodo
            consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla
            pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id
            est
            laborum. </p>
      </div>
   </section>

   <section class="collegesInformation">

      <nav class="collegeTypeNav">
         <ul>
            <li role="button" class="tab" data-tabid="engineering">Engineering</li>
            <li role="button" class="tab" data-tabid="science">Science</li>
            <li role="button" class="tab" data-tabid="liberalArts">Liberal Arts</li>
         </ul>
      </nav>

      <div class="middleContent">
      
         <nav class="aboutCollegeNav">
            <ul>
               <li role="button" class="tab" data-tabid="overview">Overview</li>
               <li role="button" class="tab" data-tabid="statistics">Statistics</li>
               <li role="button" class="tab" data-tabid="courses">Courses</li>
            </ul>
         </nav>
         
         <div class="mainContent">
            <div data-blockid="engineering overview">
               <h3> engineering overview</h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum. </p>
            </div>
            <div data-blockid="engineering statistics">
               <h3> engineering statistics </h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum. </p>
            </div>
            <div data-blockid="engineering courses">
               <h3> engineering courses</h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum. </p>
            </div>
            <div data-blockid="science overview">
               <h3>science overview </h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum.</p>
            </div>
            <div data-blockid="science statistics">
               <h3> science statistics</h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum.</p>
            </div>
            <div data-blockid="science courses">
               <h3>science courses</h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum.</p>
            </div>
            <div data-blockid="liberalArts overview">
               <h3>liberalArts overview</h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum.</p>
            </div>
            <div data-blockid="liberalArts statistics">
               <h3>liberalArts statistics</h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum.</p>
            </div>
            <div data-blockid="liberalArts courses">
               <h3>liberalArts courses</h3>
               <p> Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore
                  et
                  dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut
                  aliquip
                  ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore
                  eu
                  fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia
                  deserunt
                  mollit anim id est laborum.</p>
            </div>
         </div>
      </div>
   </section>
</body>

</html>