这是我的代码的架构:
while (..)
{
for (...; ...;...)
for(...;...;...)
if ( )
{
...
continue;
}
}
Run Code Online (Sandbox Code Playgroud)
继续做什么?他只会让第二次循环迭代一次,不是吗?我希望它能够达到目标,是否可能?
谢谢!
我有一个奇怪的问题.我有一个调用其中的python脚本的bash脚本.python脚本成功执行,但从未完全终止
Bash脚本的内容:
#! /usr/bin/env bash
python python_script.py
echo "bar"
Run Code Online (Sandbox Code Playgroud)
Python脚本的内容:
#Much stuff
sys.exit("The python script just ended")
Run Code Online (Sandbox Code Playgroud)
我期望在终止时看到的是:
>The python script just ended
>bar
Run Code Online (Sandbox Code Playgroud)
我得到的是:
>The python script just ended
Run Code Online (Sandbox Code Playgroud)
如果我键盘中断,bash继续为:
^C>bar
Run Code Online (Sandbox Code Playgroud)
是什么赋予了?很明显,退出是正确调用的,并且它与bash脚本中调用python脚本的输出语句之间没有任何内容.
(我不一定能详细说明python脚本中"很多东西"的工作原理,因为我正在修改我不完全理解的现有代码.我大多只留下脚本的工作原理,并且修改输出比格式化更多,但我很乐意尝试为您提供所需的任何其他信息)
如果我在一个数组上循环,并且在其中一个循环的中间我发现一些小问题,改变......某些东西......,并且需要再试一次......有没有办法跳回到循环的顶部没有抓住数组中的下一个值?
我怀疑这是否存在,但它会是一些关键词,如continue或break.事实上,它会很像continue,除了它没有得到下一个项目,它维持它在内存中的含义.
如果什么也不存在,我可以插入一些东西,使它成为循环中的下一个键/值吗?
也许这会更容易一段时间(array_shift())...
或者我想循环中的递归函数可能会起作用.
好吧,我的问题随着我输入这个问题而不断发展,所以请查看这个伪代码:
foreach($storage_locations as $storage_location) {
switch($storage_location){
case 'cookie':
if(headers_sent()) {
// cannot store in cookie, failover to session
// what can i do here to run the code in the next case?
// append 'session' to $storage_locations?
// that would make it run, but other items in the array would run first... how can i get it next?
} else {
set_cookie();
return;
}
break;
case 'session':
set_session();
return; …Run Code Online (Sandbox Code Playgroud) 有人可以解释为什么else: pass需要执行以下所示的代码print 'processing...才能执行其余代码(最终语句)?请注意,print在else那里放置,所以我可以告诉执行确实采取了这条道路.
似乎应该在continue没有执行时发生,因为代码中else没有任何操作.但是,如果我离开else了,没有什么可以再在for环似乎被执行时,条件为False -当与扩展名的文件做这没有任何意义,我-在目录中.文档说continue"继续下一个最近的封闭循环的循环",很好,但如果没有执行,不应该处理进入下一个语句?
import os
source_dir = r'C:\Downloads'
ext = '.mp3'
for dirName, subdirList, fileList in os.walk(source_dir):
if not any(os.path.splitext(fileName)[1].lower() == ext for fileName in fileList):
print ' skipping "{}"'.format(dirName)
continue
else: # why is this clause needed to continue this iteration of a loop?
print 'contains "{}"'.format(dirName)
pass
print 'processing "{}" which has "{}" files'.format(dirName, ext)
Run Code Online (Sandbox Code Playgroud)
谜团已揭开 …
给出以下示例代码:
var count = 0;
while (count < 5)
{
using (var request = new HttpRequestMessage(HttpMethod.Get, requestUri))
using (var response = await StaticHttpClient.Client.SendAsync(request))
{
if (!response.IsSuccessStatusCode)
{
switch ((int)response.StatusCode)
{
case 500:
case 504:
continue;
}
}
else
{ ... }
}
count++;
}
Run Code Online (Sandbox Code Playgroud)
这些IDisposable对象是否会在此方法中泄漏内存,还是会正确调用Dispose方法?(交换机中缺少许多情况,我并不关心那里的效率).
我知道我们可以在for循环中继续执行,从而跳过下一个迭代。无论如何要跳过下一个x循环(2个或更多)?
我真的很喜欢使用 PHP 的简写if,但是当尝试将它与continue命令一起使用时,我的 IDE 将其标记为错误(语法错误,意外continue)。为了找出原因,我在浏览器中运行了它(使用下面的代码),但它没有给我任何错误。
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
echo 'test<br /><br />';
foreach(range(1,10) as $i) {
$i == '6' ? continue : '';
echo $i.'<br />';
}
?>
Run Code Online (Sandbox Code Playgroud)
这只是不输出任何内容。但是,如果我注释掉其中的行continue,它就会按预期工作。
我在这里缺少什么?
使用嵌套 for 循环时,如果我在内部嵌套 for 循环中使用 continue,则 continue 的范围仅适用于内部循环还是会继续外部循环?
注意:对于我正在做的事情,我只想继续影响嵌套循环
b = ["hello"] * 5
d = ["world"] * 10
for a in b: # Outer Loop
x = 1 + 1
for c in d: # Nested Loop
if c:
x += 1
else:
continue # Does this affect the Nested Loop or the Outer Loop
Run Code Online (Sandbox Code Playgroud) 我的 Perl 脚本中有一个循环,用于准备和执行 SQL 语句,如下所示:
my $sql_1 = select * from TABLE;
my $sth_1 = $database->prepare($sql_1) or die "Failed to prepare SQL";
$sth_1->execute() or die "Failed to execute SQL";
my $results = sth_1-> fetchall_arrayref({});
my params_ins;
my params_del;
foreach my $row($results) {
params_ins = $row->{params_ins}
params_del = $row->{params_del}
my $sql_2 =
begin transaction
exec delete_sp(params_ins)
exec insert_sp(params_del)
end transaction
my $sth_2 = $database->prepare($sql_2) or die "Failed to prepare SQL";
$sth_2->execute();
}
Run Code Online (Sandbox Code Playgroud)
据我了解, die 会导致代码的执行停止。是否可以继续下一个循环而不是停止脚本的整个执行?例如,是否可以执行以下操作:
my $sth_2 = $database->prepare($sql_2) or continue; …Run Code Online (Sandbox Code Playgroud) 根据this answer,以下是标准中描述的序列点:
在函数调用和实际调用中的函数指示符和实际参数的评估之间;
在运算符 &&、|| 和 , 的第一个和第二个操作数的计算之间;
在条件 ?: 运算符的第一个操作数的评估与第二个和第三个操作数中的任何一个评估之间;
完整声明符的结束;
在完整表达式的求值和要求值的下一个完整表达式之间。以下是完整的表达:
在库函数返回之前;
在与每个格式化输入/输出函数转换说明符相关联的动作之后;
在每次调用比较函数之前和之后,以及在对比较函数的任何调用和作为参数传递给该调用的对象的任何移动之间。
该标准从未明确提到分号是一个序列点,但是已经说明的各种序列点暗示分号确实是一个序列点。
那么,分号是在break;还是continue;序列点中?
continue ×10
loops ×3
php ×3
python ×3
c# ×2
for-loop ×2
syntax ×2
bash ×1
break ×1
c ×1
die ×1
foreach ×1
idisposable ×1
if-statement ×1
nested ×1
performance ×1
perl ×1
python-2.7 ×1
scope ×1
terminate ×1
while-loop ×1