首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >测试3种条件

测试3种条件
EN

Stack Overflow用户
提问于 2014-12-13 13:53:13
回答 2查看 48关注 0票数 0

我有三个真正的条件:

编辑:

代码语言:javascript
复制
 #sell-status-no {
   background-color: #fe220b;
   margin: 0 auto;
   width: 240px;
   border: 1px solid #000000;
}

#sell-status-yes {
   background-color: #25b116;
   margin: 0 auto;
   width: 240px;
   border: 1px solid #000000;
}

 if (($profit >= 10.00 && $markup_percentage >= 30.00) || ($profit 
     < 10.00 && $markup_percentage >= 30.00) ||
     ($profit >= 10.00 && $markup_percentage < 30.00)){
        $status = "YES";
        $div_id = 'sell-status-yes';
    }
 else $status = "no"; {
        $div_id = 'sell-status-no';
    }

   <div id="<?php echo $div_id; ?>"> 
            <h2>Sell Status: <?php echo $status; ?> <h2>
        </div>

基本上,如果任何条件都是正确的,我会输出一个带有绿色背景的div,上面写着“是”。如果为假,则框为红色,并使用NO一词。

但是,每当我遇到$profit < 10 & $markup_percentage > 30的情况时,就会出现假条件(红色框和否)?

我不知道为何会出现这种情况,所以我们希望有任何帮助或更好的解决办法来解决这个问题。

干杯

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-13 13:59:18

牙套问题。如果您要格式化代码,您将看到以下内容

代码语言:javascript
复制
if (
    ($profit >= 10.00 && $markup_percentage >= 30.00) 
        || 
    ($profit < 10.00 && $markup_percentage >= 30.00) 
        ||
    ($profit >= 10.00 && $markup_percentage < 30.00)){
        $status = "YES";
        $div_id = 'sell-status-yes';
    }
 else $status = "no"; 

{
    $div_id = 'sell-status-no';
}

试着把它改成

代码语言:javascript
复制
if (
    ($profit >= 10.00 && $markup_percentage >= 30.00) 
        || 
    ($profit < 10.00 && $markup_percentage >= 30.00) 
        ||
    ($profit >= 10.00 && $markup_percentage < 30.00)){
        $status = "YES";
        $div_id = 'sell-status-yes';
    }
 else {
    $status = "no"; 
    $div_id = 'sell-status-no';
}

还可以将条件简化为

代码语言:javascript
复制
if ($profit >= 10.00 || $markup_percentage >= 30.00){
        $status = "YES";
        $div_id = 'sell-status-yes';
    }
 else {
    $status = "no"; 
    $div_id = 'sell-status-no';
}
票数 1
EN

Stack Overflow用户

发布于 2014-12-13 14:03:29

您的“否则”条件是语句

代码语言:javascript
复制
$status = "no"; 

然后,您将拥有虚假的作用域块:

代码语言:javascript
复制
{
    $div_id = 'sell-status-no';
}

永远都会被执行。

还请注意,条件逻辑可以使用布尔代数进行简化。

代码语言:javascript
复制
if (($profit >= 10.00 && $markup_percentage >= 30.00) || 
     ($profit < 10.00 && $markup_percentage >= 30.00) ||
     ($profit >= 10.00 && $markup_percentage < 30.00)){

是相同的

代码语言:javascript
复制
if (($markup_percentage >= 30.00) ||
     ($profit >= 10.00 && $markup_percentage < 30.00))

编辑,根据mleko的完整答案,代码

代码语言:javascript
复制
else $status = "no"; {
        $div_id = 'sell-status-no';
    }

是错误的和误导的。这两条语句都必须位于else块中:

代码语言:javascript
复制
else {
    $status = "no"; 
    $div_id = 'sell-status-no';
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27459548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档