标签: break

如何打破一个功能

如果我有如下功能:

void func () {
    //...

    if (condition) {
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

当我使用break时它会给我一个错误.有没有其他方法可以使用if条件退出函数并正常完成代码编译?

c++ return function break

19
推荐指数
3
解决办法
8万
查看次数

在switch语句中从一个case跳转到默认大小写

switch(ch){
          case 'a':
                 //do something, condition does not match so go to default case
                 //don't break in here, and don't allow fall through to other cases.
          case 'b':
                 //..
          case 'c':
                 //..
          case '_':
                 //...
          default:
                 //
                 break;
}
Run Code Online (Sandbox Code Playgroud)

在上面的switch语句中,我输入case'a',只有当它内部的条件发生时才会中断,否则我想跳转到默认情况.有没有其他方式这样做而不是标签或者gotos?

c break switch-statement

19
推荐指数
4
解决办法
3万
查看次数

有没有办法打破foreach循环?

我使用R包foreach()%dopar%做并行长(〜天)计算.我希望能够在其中一个产生错误的情况下停止整个计算集.但是,我还没有找到实现这一目标的方法,从文档和各种论坛我发现没有迹象表明这是可能的.特别是,break()不起作用,stop()只停止当前计算,而不是整个foreach循环.

请注意,我不能使用简单的for循环,因为最终我想使用doRNG包并行化它.

下面是我在尝试的一个简化的,可重复的版本(串行这里显示%do%,不过我用的时候有同样的问题doRNG%dopar%).请注意,实际上我想并行运行此循环的所有元素(此处为10).

library(foreach)
myfunc <- function() {
  x <- foreach(k = 1:10, .combine="cbind", .errorhandling="stop") %do% {
    cat("Element ", k, "\n")
    Sys.sleep(0.5) # just to show that stop does not cause exit from foreach
    if(is.element(k, 2:6)) {
      cat("Should stop\n")
      stop("Has stopped")
    }
    k
  }
  return(x)
}
x <- myfunc()
# stop() halts the processing of k=2:6, but it does not stop the foreach loop …
Run Code Online (Sandbox Code Playgroud)

parallel-processing foreach r break

19
推荐指数
2
解决办法
6973
查看次数

如何干净地关闭以Process.Start开头的控制台应用程序?

这看起来像是一项不可能的任务.绝对没有我找到的作品.问题是如何干净地关闭以Process.Start启动的控制台应用程序,该控制器应用程序在没有控制台窗口且没有使用shell执行的情况下启动:( ProcessStartInfo.CreateNoWindow = true; ProcessStartInfo.UseShellExecute = false;).

如果它接收到ctrl-c或ctrl-break信号,那么正在启动的应用程序将"干净地"关闭,但似乎没有办法发送一个有效的应用程序(特别是GenerateConsoleCtrlEvent).

  • Process.Kill不起作用.由于突然杀死进程,它会留下损坏的文件.
  • Process.CloseMainWindow不起作用.在这种情况下没有主窗口,因此该函数返回false并且什么都不做.
  • 在进程的所有线程上调用EnumThreadWindows并向每个窗口发送WM_CLOSE都没有做任何事情,并且无论如何都没有任何线程窗口.
  • GenerateConsoleCtrlEvent不起作用.它仅适用于同一组中的进程(.NET无法控制),无论如何都会关闭调用进程产生不必要的副作用.该功能不允许您指定进程ID.

任何能够提供接受"Process"对象的代码的人都将被标记为答案,该代码以上述参数开始,这些对象导致已启动进程的干净关闭而不影响调用进程.使用7z.exe(7-zip归档程序)作为示例控制台应用程序,它开始压缩大文件,如果没有干净地终止,将留下损坏的未完成文件.

直到有人提供了通向功能示例的功能例子或代码,这个问题没有答案.我见过几十个人在网上问这个问题和几十个答案,但都没有..NET似乎不支持干净地关闭控制台应用程序给定其进程ID,考虑到它是从.NET进程对象开始的,这很奇怪.部分问题是无法在新进程组中创建进程,这使得使用GenerateConsoleCtrlEvent无用.必须有一个解决方案.

.net process console-application break

19
推荐指数
2
解决办法
5055
查看次数

控制中断在2010(2013)Excel VBA中不起作用

我编写代码并且(尽管这很难相信很多),偶尔会搞砸,创建一个无限循环.使用我的新奇特Excel,Ctrl + Break不再有效.Esc键等也没有.我看过整个网络,看起来微软有一个错误,并不关心修复它.

有没有人知道如何重新向VBA引入Ctrl + Break功能,所以如果将来发生这种情况我不会失去工作/强制关闭?谢谢!

vba ctrl break excel-vba infinite-loop

19
推荐指数
5
解决办法
5万
查看次数

如何在Eclipse中默认停止GDB执行"break main"?

我正在使用Eclipse和MinGW开发一个C项目.运行此项目的调试版本时,gdb始终在输入时中断main().我可以看出为什么这可能有用,但对于我目前的项目,我不希望这种情况发生.

我读过有一个命令

(gdb) break main
Run Code Online (Sandbox Code Playgroud)

从命令行运行时将完成相同的行为.

目前我没有.gdbinit文件.

目前,gdb在从命令行运行时不会停止进入main,但是从Eclipse运行时它会执行.

如何在Eclipse中默认进入main时使GDB停止运行?

c eclipse gdb break

18
推荐指数
1
解决办法
8515
查看次数

在javascript中打破标签和没有标签之间有什么区别

var num = 0;
for(var i = 0; i < 10; i++){
  for(var j = 0; j < 10 ; j++){
    if(i == 5 && j == 5){
      break;
    }
    num++;
  }
}

console.log(num)
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我希望结果为55,但为什么结果为95.

但是为什么如果我添加标签,结果会变成55?

var num = 0;
outermost:
for(var i = 0; i < 10; i++){
  for(var j = 0; j < 10 ; j++){
    if(i == 5 && j == 5){
      break outermost;
    }
    num++;
  }
}

console.log(num);
Run Code Online (Sandbox Code Playgroud)

javascript label break

18
推荐指数
2
解决办法
1万
查看次数

两个while循环中的break语句

假设我有这个:

while(a){

  while(b){

   if(b == 10)
     break;
 }
}
Run Code Online (Sandbox Code Playgroud)

问题: break语句是否会将我从两个循环中取出或仅从内循环中取出?谢谢.

java break while-loop

18
推荐指数
6
解决办法
7万
查看次数

F#从while循环中断

有什么方法可以做到这一点C/C#

例如(C#风格)

for( int i=0; i<100; i++)
{
   if(i==66)
    break;
} 
Run Code Online (Sandbox Code Playgroud)

f# break while-loop

18
推荐指数
3
解决办法
1万
查看次数

退出for循环Swift iOS的迭代

我有一个带有for循环的函数:

func example() {
  // create tasks
  for link in links {
    let currIndex = links.indexOf(link)

    if let im = story_cache?.objectForKey(link) as? UIImage {
      if ((currIndex != nil) && (currIndex < content.count)) {
        if (content[currIndex!].resource_type == "image") {
          content[currIndex!].image = im
          return
        }
      }
    } else {
      if ((currIndex != nil) && (currIndex < content.count)) {
        if (content[currIndex!].resource_type == "video") {
          let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
          let documentsDirectory : NSString = paths[0]
          let appFile = documentsDirectory.stringByAppendingPathComponent(content[currIndex!].id! + ".mov")
          let …
Run Code Online (Sandbox Code Playgroud)

for-loop return break ios swift

17
推荐指数
2
解决办法
3万
查看次数