我希望在PHP中打破外部for/foreach循环.
这可以在ActionScript中完成,如下所示:
top : for each(var i:MovieClip in movieClipArray)
{
for each(var j:String in nameArray)
{
if(i.name == j) break top;
}
}
Run Code Online (Sandbox Code Playgroud)
什么是PHP等价物?
在循环中使用break语句是不好的做法?for
说,我在数组中搜索一个值.比较for循环内部和找到值时,break;退出for循环.
这是一种不好的做法吗?我已经看到了使用替代:定义一个变量vFound,当被发现的价值它设置为true,并检查vFound在for语句条件.但是,是否有必要为此目的创建一个新变量?
我在正常的C或C++ for循环的上下文中询问.
PS:MISRA编码指南建议不要使用break.
我正在写一些看起来像这样的代码:
while(true) {
switch(msg->state) {
case MSGTYPE: // ...
break;
// ... more stuff ...
case DONE:
break; // **HERE, I want to break out of the loop itself**
}
}
Run Code Online (Sandbox Code Playgroud)
有没有直接的方法呢?
我知道我可以使用一个标志,并通过在切换后放置一个条件中断来从循环中断.我只是想知道C++是否已经有了一些构造.
我遇到了一个问题:我正在运行一个循环来处理多个文件.我的矩阵是巨大的,因此如果我不小心,我经常会失去记忆.
如果创建了任何警告,有没有办法摆脱循环?它只是继续运行循环并报告它失败了很久......令人讨厌.任何想法哦明智的stackoverflow-ers ?!
如果文本包含"\n",我似乎无法向画布添加文本.我的意思是,换行符不显示/工作.
ctxPaint.fillText("s ome \n \\n <br/> thing", x, y);
Run Code Online (Sandbox Code Playgroud)
上面的代码将"s ome \n <br/> thing"在一行中绘制.
这是fillText的限制还是我做错了?"\n"是存在的,没有打印,但它们也不起作用.
为什么编译器不会在交换机中的每个代码块之后自动放置break语句?这是出于历史原因吗?您何时需要执行多个代码块?
当我switch在VS2008 C#中创建一个声明时(如此)(人为):
switch (state) {
case '1':
state = '2';
case '2':
state = '1';
}
Run Code Online (Sandbox Code Playgroud)
它抱怨说我不被允许通过:
控制不能从一个案例标签('case'1'(0x31):')转到另一个案例标签
如果您不被允许通过,那么该break声明的目的是什么?为什么语言设计师不会将其排除在外并自动跳到switch语句的末尾而不是强迫我们输入不必要的结构?
我尝试使用一个简单的循环,在我的实际代码中这个循环更复杂,我需要break这样的迭代,如:
{% for post in posts %}
{% if post.id == 10 %}
{# break #}
{% endif %}
<h2>{{ post.heading }}</h2>
{% endfor %}
Run Code Online (Sandbox Code Playgroud)
我如何使用的行为,break或continue在枝杈PHP控制结构?
如果我使用一个break语句,它只会破坏内部循环,我需要使用一些标志来打破外部循环.但是如果有许多嵌套循环,代码看起来不会很好.
还有其他方法可以打破所有循环吗?(请不要使用goto stmt.)
for(int i = 0; i < 1000; i++) {
for(int j = 0; j < 1000; j++) {
if(condition) {
// both of the loops need to break and control will go to stmt2
}
}
}
stmt2
Run Code Online (Sandbox Code Playgroud)