当前位置: 首页 > 面试题库 >

在C#中是否有Java标记的等效中断或替代方法

郎鸿朗
2023-03-14
问题内容

我正在将一些Java代码转换为C#,并发现了一些标记为“ break”的语句(例如)

label1:
    while (somethingA) {
       ...
        while (somethingB) {
            if (condition) {
                break label1;
            }
        }
     }

C#是否存在等效项(当前读数不建议使用),如果没有,则除了(例如)具有布尔标志以指示是否在每个循环结束时中断以外,没有任何转换(例如)

bool label1 = false;
while (somethingA)
{
   ...
    while (somethingB)
    {
        if (condition)
        {
            label1 = true;
            break;
        }
    }
    if (label1)
    {
        break;
    }
}
// breaks to here

我对C#为什么没有这个很感兴趣,因为它似乎并不十分邪恶。


问题答案:

您可以使用goto直接跳转到标签

while (somethingA)
{
    // ...
    while (somethingB)
    {
        if (condition)
        {
            goto label1;
        }
    }
}
label1:
   // ...

在类似C的语言中,goto通常可以更轻松地打破嵌套循环,而不是跟踪布尔变量并在每个循环结束时反复检查它们。



 类似资料:
  • 问题内容: Java具有格式字符串的概念,与其他语言的格式字符串非常相似。它用于诸如输出转换之类的JDK方法中。 我想知道在Java中是否有类似于C的输入转换方法? 问题答案: 看一下该站点,它解释了两种使用java中的控制台读取的方法,使用或使用System.in中的经典方法。 以下代码摘自引用的网站: - 问候。

  • 问题内容: 来自C和C ++背景,我发现明智地使用typedef会带来极大帮助。您是否知道在Java中实现类似功能的方法,无论是Java机制,模式还是您使用的其他有效方法? 问题答案: Java具有原始类型,对象和数组,仅此而已。没有typedef。

  • 问题内容: 如何在Java中解码使用HttpServerUtility.UrlTokenEncode在C#中编码的字符串? 问题答案: 我尝试使用(ctor接受一个参数,说明编码/解码是否是url安全的),但事实证明它的实现方式与UrlTokenEncode / Decode不同。 我最终将C#实现迁移到Java:

  • 所以假设我有一个包含大量ints和double的程序。如果我知道这个数字合适的话,是否值得把我的整数改为字节或短号? 我知道java没有无符号类型,但是如果我知道数字只为正数,我还能做什么吗? 我所说的高效主要是指处理。我假设,如果所有变量都是一半大小,垃圾收集器会快得多,计算也可能会快一些。(我想既然我在android上工作,我也需要担心一下ram。) 当我开始一个新项目的时候,值得从一开始就做

  • 请注意,我使用以下代码得到了相同的结果: 所以问题是,fooObservable直到订阅了PublishSubject之后才订阅PublishSubject, 是否有一种方法可以在第一次订阅FooObservable之后立即运行代码? 如果请求与已经订阅的请求匹配,那么observable应该在订阅时立即提供最新的匹配值。 当没有订阅者时,我需要取消我包装的服务的订阅。

  • 问题内容: 尝试在Java / Swing中构建GUI应用程序。我主要习惯于使用VB之类的工具在Windows方面“绘画” GUI(或更准确地说,是Gupta SQLWindows …想知道有多少人知道那是什么;-)。 我在Swing中找不到等效的Group Box … 使用组框,您将在几个相关小部件周围有一个方形框(通常带有标题)。一个示例是围绕几个单选按钮的分组框(标题说明了单选按钮的含义,例