标签: break

打破包含switch语句的while循环

我无法弄清楚如何打破包含switch语句的循环.断开了开关,而不是循环.

对此可能有更优雅的解决方案.我已经实现了一个标志,该标志以true开头并设置为false并结束循环.你能提供更好的解决方案吗?

背景:此代码用于条形码工作流程系统.我们有内置条形码扫描仪的PocketPC.此代码用于其中一个功能.它会在整个例程中提示用户输入不同的数据.这件作品允许他们滚动显示在PocketPC终端上显示该信息的一些库存记录(分页结果)并允许他们输入"D"表示完成,"Q"表示退出.

这是当前需要改进的C#示例:

do
{
    switch (MLTWatcherTCPIP.Get().ToUpper())
    {
        case "": //scroll/display next inventory location
            MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown();
            break;
        case "P": //scroll/display previous inventory location
            MLTWatcherTCPIP.TerminalPrompt.ScrollBodyTextDown();
            break;
        case "D": //DONE (exit out of this Do Loop)
            // break; // this breaks out of the switch, not the loop
            // return; // this exists entire method; not what I'm after
            keepOnLooping = false;
            break;
        case "Q": //QUIT (exit out to main menu)
            return;
        default:
            break;
    }
} while (keepOnLooping);
Run Code Online (Sandbox Code Playgroud)

这是在VB.NET中执行此操作的代码示例

Do
    Select Case …
Run Code Online (Sandbox Code Playgroud)

c# break while-loop

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

Java如何在switch语句下打破while循环?

我有一个功课来实现一个简单的测试应用程序,下面是我目前的代码:

import java.util.*;

public class Test{

private static int typing;

public static void main(String argv[]){
    Scanner sc = new Scanner(System.in);
    System.out.println("Testing starts");
    while(sc.hasNextInt()){
        typing = sc.nextInt();
        switch(typing){
            case 0:
              break; //Here I want to break the while loop
            case 1:
              System.out.println("You choosed 1");
              break;
            case 2:
              System.out.println("You choosed 2");
              break;
            default:
              System.out.println("No such choice");
        }
    }
      System.out.println("Test is done");
    }
}
Run Code Online (Sandbox Code Playgroud)

我现在要做的是,当0按下时,表示用户想要退出测试,然后我打破while loop并打印Test is done,但它不能那样工作,我知道原因可能是"break"打破了switch,我怎么能让它打破while loop呢?

java break while-loop

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

PHP中"break"或"continue"后的数字是什么意思?

有人可以通过示例解释循环break 2continue 2PHP中的含义吗?数字何时breakcontinue后面是什么意思?

php loops continue breakpoints break

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

使用'goto'语句不好吗?

在做了一些关于如何突破二次循环的研究之后

while (true) { // Main Loop
   for (int I = 0; I < 15; I++) { // Secondary loop
       // Do Something
       break; // Break main loop?
   }
}
Run Code Online (Sandbox Code Playgroud)

大多数人建议调用'goto'函数
看如下例:

while (true) { // Main Loop
   for (int I = 0; I < 15; I++) { // Secondary Loop
       // Do Something
       goto ContinueOn; // Breaks the main loop
   }
}
ContinueOn:
Run Code Online (Sandbox Code Playgroud)

然而; 我经常听说'goto'声明是不好的做法.下图完美地说明了我的观点: 系列发现

所以

  • goto语句真的有多糟糕,为什么?
  • 是否有一种比使用'goto'语句更有效的方法来打破主循环?

c# loops goto break

50
推荐指数
7
解决办法
2万
查看次数

关于Java switch语句 - 在每种情况下使用return和省略中断

鉴于这种方法,这是否代表了一些令人震惊的风格或语义失误:

private double translateSlider(int sliderVal) {
    switch (sliderVal) {
        case 0:
            return 1.0;
        case 1:
            return .9;
        case 2:
            return .8;
        case 3:
            return .7;
        case 4:
            return .6;
        default:
            return 1.0;
    }
}  
Run Code Online (Sandbox Code Playgroud)

这显然不符合这里的Java教程.

然而,它清晰,简洁,到目前为止已经完全符合我的需要.是否有令人信服的实用理由创建局部变量,在每种情况下为其赋值,为每个案例添加一个中断并在方法结束时返回值?

java return case break switch-statement

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

您的应用已进入中断状态,但没有要显示的代码,因为所有线程都在执行外部代码(通常是系统或框架代码)

Visual Studio 2017在调试模式下中断并显示消息:

您的应用程序已进入中断状态,但没有要显示的代码,因为所有线程都在执行外部代码(通常是系统或框架代码).

消息在Break Mode Window.

该怎么办?

projects-and-solutions break visual-studio

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

Python:分号是做什么用的?

我在线获得了一个函数来帮助我完成当前的项目,它在某些行上有分号.我想知道为什么?是打破这个功能吗?

def containsAny(self, strings=[]):
    alphabet = 'abcdefghijklmnopqrstuvwxyz0123456789'
    for string in strings:
        for char in string:
            if char in alphabet: return 1;
    return 0;
Run Code Online (Sandbox Code Playgroud)

我上网的功能很少修改:

for string in strings:
    for char in string:
        if char in alphabet: return 1;
Run Code Online (Sandbox Code Playgroud)

这是^说以下?

if char in alphabet:
    return 1
    break
Run Code Online (Sandbox Code Playgroud)

python if-statement function break

46
推荐指数
2
解决办法
7万
查看次数

在Kotlin的功能循环中,如何"中断"或"继续"?

在科特林,我不能做一个breakcontinue一个功能回路和我的拉姆达内-就像我可以从一个正常的for循环.例如,这不起作用:

(1..5).forEach {
    continue@forEach  // not allowed, nor break@forEach
}
Run Code Online (Sandbox Code Playgroud)

旧的文档提到这个可用,但它似乎从未实现过.当我想要continuebreak来自lambda 时,获得相同行为的最佳方法是什么?

注意: 这个问题是由作者故意编写和回答的(答案问题),因此对于常见问题的Kotlin主题的惯用答案存在于SO中.还要澄清为Kotlin的alphas写的一些非常古老的答案,这些答案对于当前的Kotlin来说是不准确的.

loops functional-programming continue break kotlin

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

在JavaScript中使用标签是不好的做法?

我刚刚发现在JavaScript中使用标签,例如:

for (var i in team) {
    if(i === "something") {
        break doThis: //Goto the label
    } else {
        doThat();
    }
}

doThis: //Label
doIt();
Run Code Online (Sandbox Code Playgroud)

直到现在我还没有听说过这个,我在网上找不到太多关于它的信息,我开始认为这是有原因的.

在我看来,这类似于GOTO其他语言的陈述,并将被视为不良做法.假设这个我是对的吗?

javascript label loops break nested-loops

42
推荐指数
4
解决办法
2万
查看次数

如何退出两个嵌套循环?

我已经使用Java很长一段时间了,但我的循环教育有点缺乏.我知道如何创建java中存在的每个循环,并打破循环.但是,我最近想过这个:

假设我有两个嵌套循环.我可以只使用一个break语句来打破两个循环吗?

这是我到目前为止所拥有的.

int points = 0;
int goal = 100;
while (goal <= 100) {
    for (int i = 0; i < goal; i++) {
        if (points > 50) {
           break; // For loop ends, but the while loop does not
        }
        // I know I could put a 'break' statement here and end
        // the while loop, but I want to do it using just
        // one 'break' statement.
        points += i;
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有办法实现这个目标?

java loops break nested-loops

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