if语句如何简化?

时间:2019-05-19 17:16:14

标签: c++ if-statement conditional-statements std-pair code-inspection

我正在使用CLion IDE编码我的C ++项目。有时候,IDE会比我更聪明,并给我一些建议。在代码检查过程中(CLion),我遇到一个简单的问题。它说以下代码可以简化,即使我认为这是我能想到的最简单的形式:

代码:

<div id="selectspot" style="top:25%">    <br />   
        <div class=" mdl-textfield mdl-js-textfield mdl-textfield--floating-label getmdl-select getmdl-select__fix-height spotselector">
            <input class="mdl-textfield__input" type="text" id="country" value="- Select -" readonly tabIndex="-1" onchange="countryChange();">
            <label for="country">
                <i class="mdl-icon-toggle__label material-icons">keyboard_arrow_down</i>
            </label>
            <label for="country" class="mdl-textfield__label"><span class="ms-tr" data-tr="country">Country</span></label>
            <ul for="country" class="country mdl-menu mdl-menu--bottom-left mdl-js-menu">
                <li class="mdl-menu__item">- Select -</li>
            </ul>
        </div>
      </div>

假设节点的类型为 if (node.first >= 0 && node.first <= 45 && node.second >= 0 && node.second <= 30) return true; else return false;

我从CLion IDE获得的建议如下:

代码检查注释:

std::pair<int, int>

您认为这可以进一步简化吗?

1 个答案:

答案 0 :(得分:6)

CLion向您暗示这一点...

if (node.first >= 0 && node.first <= 45 &&
    node.second >= 0 && node.second <= 30)
    return true;
else
    return false;

可以改写为

return node.first  >= 0 && node.first  <= 45 &&
       node.second >= 0 && node.second <= 30;

由于在控制语句中用作条件的表达式显然可以自然转换为true和false。