标签: continue

我为什么要避免使用Java标签语句?

互联网上的每个人都说你应该避免在java中使用标签语句.但是,我发现它们在某些情况下非常有用,即嵌套循环.
我找不到令人满意的答案,为什么不使用它们.我认为标签的替代品往往会降低可读性或性能,或两者兼而有之.

那么什么使得标记的破坏和继续陈述如此糟糕?

java label continue break nested-loops

5
推荐指数
1
解决办法
2095
查看次数

shell脚本:嵌套循环并继续

while [condition]
do
  for [condition]
  do
    if [ "$x" > 3 ];then
      break
    fi
  done

  if [ "$x" > 3 ];then
    continue
  fi
done
Run Code Online (Sandbox Code Playgroud)

在上面的脚本中我必须测试"$x" > 3两次。实际上,我第一次测试它时,如果这是真的,我想逃避 while 循环并继续下一个 while 循环。

有没有更简单的方法让我可以使用类似的方法continue 2来逃避外循环?

shell continue

5
推荐指数
1
解决办法
2794
查看次数

在指定之前不要继续Javascript for循环

我需要暂停一个for循环而不是继续,直到我指定.对于我正在循环的数组中的每个项目,我运行一些在单独的设备上运行操作的代码,我需要等到该操作完成后再循环到数组中的下一个项目.

幸运的是,该代码/操作是一个游标并具有一个after:部分.

但是,它一直在运行整个for循环,我需要阻止它.有没有办法阻止循环继续,直到指定?或者可能是一种不同类型的循环或我应该使用的东西?

我的第一个(差)想法是在for循环中连续运行一个while循环,直到after:光标部分设置booleantrue.这只是锁定浏览器:(因为我担心它会.

我能做什么?我对javascript很新.我一直很喜欢我现在的项目.

这是while-loop尝试.我知道它的运行整个循环立即因为dataCounter从进入13(目前数组中的两个项目)瞬间:

if(years.length>0){
  var dataCounter = 1;
  var continueLoop;
  for(var i=0;i<years.length;i++){
    continueLoop = false;
    baja.Ord.make(historyName+"?period=timeRange;start="+years[i][1].encodeToString()+";end="+years[i][2].encodeToString()+"|bql:select timestamp, sum|bql:historyFunc:HistoryRollup.rollup(history:RollupInterval 'hourly')").get(
        {
          ok: function (result) {
          // Iterate through all of the Columns

          baja.iterate(result.getColumns(), function (c) {
            baja.outln("Column display name: " + c.getDisplayName());
          });
        },
        cursor: {
          before: function () {
          baja.outln("Called just before iterating through the Cursor");
          counter=0;
          data[dataCounter] = [];
          baja.outln("just …
Run Code Online (Sandbox Code Playgroud)

javascript for-loop continue

5
推荐指数
1
解决办法
1625
查看次数

还在继续吗?

在以下两个代码片段中,根据编译或运行的速度,实际上是否有任何不同?

for (int i = 0; i < 50; i++)
{
    if (i % 3 == 0)
        continue;

    printf("Yay");
}
Run Code Online (Sandbox Code Playgroud)

for (int i = 0; i < 50; i++)
{
    if (i % 3 != 0)
        printf("Yay");
}
Run Code Online (Sandbox Code Playgroud)

就个人而言,在存在多于print语句的情况下,我一直在使用第一种方法来减少包含代码的缩进量.想知道一段时间,所以发现它的时间我问它是否实际上有除了视觉效果.

回复Alf(我无法让代码在评论中工作......)

对我的用法更准确的是"handleObjectMovement"函数的行,其中包括

for each object
    if object position is static
        continue

    deal with velocity and jazz
Run Code Online (Sandbox Code Playgroud)

和....相比

for each object
    if object position is not static
        deal with velocity and jazz
Run Code Online (Sandbox Code Playgroud)

因此我没有使用回报.基本上"如果它与此迭代无关,请继续"

c++ continue compiler-optimization

5
推荐指数
1
解决办法
201
查看次数

Python异常处理——返回行,继续

我解决了很多 Project Euler 编码问题,Python 是我的首选语言。许多程序通常需要很长时间才能完成,因此我正在努力实现一些有助于提供有关程序状态的诊断信息的东西:当发生时,KeyboardInterrupt我希望能够打印程序运行了多长时间以及一些信息帮助我弄清楚还需要多长时间。

问题是——KeyboardInterrupt当你击中时抓住Ctrl-C仍然为我退出程序......我认为这与这段代码的结构有很大关系,或者希望与Python中我还没有找到的东西有很大关系。

KeyboardInterrupt我希望我的代码在被捕获后立即在同一行恢复。

下面是此代码的示例:

     try:
         ...
         ...
         ... #I interrupt code here and hopefully keep going!
         ...
         ...
     except KeyboardInterrupt:
         ...
     finally:
         ...
Run Code Online (Sandbox Code Playgroud)

我希望有人理解这样做的目的,并可以帮助我找到一种方法来做到这一点,或者解决这种从运行代码中调用中断的丑陋方法。

python continue exception keyboardinterrupt

5
推荐指数
1
解决办法
1594
查看次数

在 .ForEach() 方法中使用 continue/return 语句 - 使用 foreach ($item in $collection) 是否更好?

有相当详细的记录表明,foreach 处理速度根据 foreach 循环的执行方式而变化(从最快到最慢排序):

  1. .ForEach() 方法
  2. foreach($collection 中的$item){}
  3. $收藏| ForEach-对象{}


  • 当处理(非常)大的集合时,#1 和#2 之间的速度比较可能很重要,并且管道的开销使得#3 在这些情况下不适合。
  • #2 提供了该continue声明,而 #1 没有
    • 如果不准确,请纠正/评论
  • 从我在网上和现实生活中看到的,return是如何“continue使用”.ForEach()方法时。



我的问题:

  1. 当该方法的速度优势.ForEach()太大而难以满足foreach而您又需要时,正确的使用continue方法是什么?continue.ForEach({})
  2. return在方法内部使用时,您应该注意哪些含义或陷阱.ForEach()

powershell foreach loops continue return

5
推荐指数
1
解决办法
194
查看次数

继续循环内部if语句与使用循环内if语句的否定

例如,让我们考虑以下2个代码:

for (i = 0; i < 1000; i++)
{
   if ( i % 2 != 0)
   {
       continue;
   }
   else
   {
     ...  
   }    
}
Run Code Online (Sandbox Code Playgroud)

for (i = 0; i < 1000; i++)
{
   if (i % 2 == 0)
   {
     ...  
   }    
}
Run Code Online (Sandbox Code Playgroud)

两者都会导致相同的结果.那么哪一个使用?哪一个更好?这两者之间是否存在显着的性能差异?让我们看看你们看到了什么.我喜欢我在这里看到的关于这些事情的讨论.这可能会导致更好的代码编写和更好的执行时间.我发布了这个问题,因为我找不到答案.如果我找不到答案,我可能会在将来发布另一个这样的人.

PS什么是你可以在没有它的情况下继续使用循环的目的?

syntax optimization loops continue execution

4
推荐指数
1
解决办法
2085
查看次数

在python三元组中使用continue?

如何在python三元组中使用continue?这甚至可能吗?

例如

>>> for i in range(10):
...     x = i if i == 5 else continue
Run Code Online (Sandbox Code Playgroud)

给一个 SyntaxError: invalid syntax

如果可以继续使用三元组,还有其他方法可以做到这一点:

>>> for i in range(10):
...     if i ==5:
...             x = i #actually i need to run a function given some condition(s)
...     else:
...             continue
... 
>>> x
5
Run Code Online (Sandbox Code Playgroud)

python continue ternary conditional-statements

4
推荐指数
1
解决办法
1488
查看次数

Bash脚本的continue关键字不中断循环迭代

我正在遵循一系列教程来学习Bash shell脚本。练习之一是循环浏览当前目录中的文件并在这些文件中搜索模式。如果找到了模式,则脚本应将这些文件的文件大小相加。

#!/bin/sh
patern=echo
totalSize=0

for file in * 
do
    [ ! -f $file ] && continue  

    if grep $patern $file > /dev/null
    then    
        echo "pattern matched in $file" 
        echo "file size is `stat -c%s $file`"
        fileSize=`stat -c%s $file`

        totalSize=`expr $totalSize + $fileSize`
        echo "size so far is $totalSize bytes"
        echo                                                    
    fi
done
Run Code Online (Sandbox Code Playgroud)

我正在从中运行脚本的目录中还有另一个文件夹。该文件夹称为“ somedir”。它是空的。我在下面粘贴了一段输出文本。中间的三行显示了循环何时遍历目录“ somedir”,该目录打印为“ sum_files”-我的脚本名称以及文件大小。

我不了解这种行为。空目录如何具有文件大小?
但是我主要关心的是为什么continue关键字没有停止循环迭代。输出显示该脚本正在运行以下包含grep命令的if语句,即使该脚本在找到目录后也应停止。

我已经验证,[ ! -f $file ]当循环到达目录时,test命令实际上确实返回0,因此&& continue应调用。那么,为什么程序要继续循环代码的其余部分,并尝试grep目录,而不是像预期的那样只是跳过continue的循环迭代?我知道这很简单,但想知道这里发生了什么。

输出文字

淘汰
文件中匹配的模式大小为396
,到目前为止为6385字节

sum_files中匹配的模式
文件大小为398
,到目前为止为6783字节

tp0
文件中匹配的模式大小为164
,到目前为止为6947字节

linux bash loops continue

4
推荐指数
1
解决办法
5447
查看次数

Python - 如何在Try Catch之后继续循环?

我有以下python代码,它工作正常,但它带来错误,然后跳转到最后一行.
然后我从文件中删除有问题的行,再次运行python脚本但它再次找到有问题的行并跳转到最后.
我想能够打印所有行而不跳到python脚本的末尾(只是跳过行并继续到下一行):

import csv
with open('data.tsv', "rb") as f:
    reader = csv.reader( f )

    try:
        for row in reader:
            continue
    except csv.Error, e:
        print reader.line_num, e
        pass
print "End of file!\n"
Run Code Online (Sandbox Code Playgroud)

python continue skip next

4
推荐指数
1
解决办法
70
查看次数