连续多次检查if-statement是否为true

时间:2017-01-19 08:14:11

标签: c# algorithm

我有一个循环

<nav class="navbar navbar-light">
    <div class="navbar-header">
        <button class="navbar-toggle navbar-toggle-right" type="button" data-toggle="collapse" data-target="#navbarSupportedContent" aria="navbarSupportedContent" aria-expanded="false" aria-label="toggle navigation"><span class="icon-bar"></span><span class="icon-bar"></span><span class="icon-bar"></span></button>
    </div>
    <a class="navbar-brand" href="#">Retail Mobile</a>

    <div class="collapse navbar-collapse" id="navbarSupportedContent">
        <ul class="nav navbar-nav">
            <li [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}" class="nav-item"><a [routerLink]="['/home']"><span class="glyphicon glyphicon-home"></span> Home</a></li>
            <li [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}" class="nav-item"><a [routerLink]="['/checkBarcodes']"><span class="glyphicon glyphicon-barcode"></span> Check Barcodes</a></li>
            <li [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}" class="nav-item"><a [routerLink]="['/stockTake']"><span class="glyphicon glyphicon-folder-open"></span> Stock Take</a></li>
            <li [routerLinkActive]="['active']" [routerLinkActiveOptions]="{exact:true}" class="nav-item"><a [routerLink]="['/settings']"><span class="glyphicon glyphicon-wrench"></span> Settings</a></li>
        </ul>
    </div>

</nav>

如何一次检查if语句是否为真三次?

3 个答案:

答案 0 :(得分:4)

嗯,最简单的方法是在else添加if

count = 0;
do
{
    ...
    if (statement)
        count++;
    else
        count = 0;
    ...
} while (count != 3);

然而,你冒着无限循环的风险,因为如果没有3个连续的真实陈述,你的计数永远不会是3。

答案 1 :(得分:3)

如果statement为false,您可以重置count。

if (statement)
    count++;
else
    count = 0;

另外,请注意如评论中所提到的,如果3个数字不连续出现,循环将永远不会退出。在if块之外放置一个单独的变量来计算总迭代次数,并在while条件下使用它。

答案 2 :(得分:0)

我认为这里不需要额外的计数器。你说你要连续3次检查(不强制执行)该陈述是真的。

count = 0;
var statementAlwaysTrue = true;

do
{
    ...
    if (statement)
        count++;
    else
        statementAlwaysTrue = false;
    ...
} while (count != 3);

循环结束后,您可以评估statementAlwaysTrue。我显然会考虑根据statement的任何内容重命名。