java - java 中 goto 的替代方案

标签 java break

在名为 a 的线程中,我有 2 个循环,当标志为 false 时,它​​们都必须停止。 类似这样的事情:

boolean flag = true;

t1 = new Thread(new Runnable()
{
    @Override
    public void run()
    {
        while(flag && another_condition)
        {
        }

        Do_something_that_takes_time

        while(flag && another_condition)
        {
        }

    });
}

假设我们进入了第一个循环,并且在循环运行的中间更改为 false,现在我们将移动到“Do_somthing...” channel ,这可能需要几秒钟才能完成,然后我们将移动到第二个循环。 与此同时,flag 的值可能会再次更改为 true!这意味着我将执行第二个循环,但我不希望这样做。那么是否可以做这样的事情:

boolean flag = true;

t1 = new Thread(new Runnable()
{
    @Override
    public void run()
    {
        while(another_condition)
        {
            goto end;
        }

        Do_something_that_takes_time

        while(flag && another_condition)
        {
            goto end;
        }
        end:    
    });
}

我现在写的代码当然不起作用,但这只是为了证明我的意愿。 我知道“break”应该是解决方案,但我无法通过使用它来找到解决方案。

最佳答案

如果您的目标是从 run 方法中中断/退出,那么您只需使用 return;

关于java - java 中 goto 的替代方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22174694/

相关文章:

c++ - 使用 "for"打破 "break"循环被认为是有害的?

java - Java JScrollPane动态添加组件的方法

java - Solr 如何使用邻近搜索和通配符进行 eDisMax 查询?

html - 仅在 Ipad 上随机换行

html - 分词 css 未相应对齐

c# - 在方法中停止执行的最佳方法

C++ 编写解释器 - 确定 break 语句的循环 objective-c ++

java - Android 将 Ruby on Rails 时间戳转换为日期时间

java - Bundlor 无法与 Java 8 lambda 正常工作

java - 在 Java 中用 n 替换新行