针对可怕的 While (True) 循环的最佳重构

2024-01-27

如果您像我一样在 While (True) 循环处颤抖,那么您一定也已经认真思考了重构它的最佳方法。我见过几种不同的实现,没有一个真正比其他实现更好,例如计时器和委托组合。

那么,您想出或看到的重构可怕的 While (True) 循环的最佳方法是什么?

Edit:正如一些评论提到的,我的目的是让这个问题成为一个“无限循环”重构,例如运行 Windows 风格的服务,其中唯一的停止条件是 OnStop 或致命异常。


我的偏好是

start:

   // code goes here

goto start;

这最清楚地表达了意图。祝你好运,让它通过你的编码标准。 (想知道这会让我付出多少业力)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

针对可怕的 While (True) 循环的最佳重构 的相关文章

  • while循环中的变量初始化

    我有一个可以分块读取文件的函数 public static DataObject ReadNextFile 数据对象看起来像这样 public DataObject public string Category get set And ot
  • 循环选项在 youtube js api 中不起作用

    我想知道为什么我的代码不循环播放视频 除了循环选项之外 一切正常 我真的需要它 多谢 div You need Flash player 8 and JavaScript enabled to view this video div
  • Django中的自动递增值

    我在 django 中有一个表并尝试自动递增它的序列号 在自定义模板中 for 循环用于变量 自定义模板 for i in getodeskview tr td 1 td td i odesk id td td i hours td td
  • 如何重构这个 switch 语句?

    string liquidClass string Empty switch cmbLiquidClass Text case LiquidClass1 liquidClass Settings Default LiquidClass1 b
  • 如何在Shiny中动态生成的条件面板中格式化条件?

    我正在尝试使用 for 循环在 Shiny 中创建小部件 每个块包含 label 复选框 选择选择器 两个数字输入 我想根据复选框的值和选择选择器的值来设置显示或隐藏两个数字输入的条件 在我创建的 for 循环中 我为每个小部件变量添加了一
  • C# While 循环与 For 循环?

    在 C 中 一个问题已经困扰我一段时间了 它的 While 和 For 循环之间的实际主要区别是什么 它只是纯粹的可读性吗 在 for 循环中本质上可以做的所有事情都可以在 while 循环中完成 只是在不同的地方 举这些例子 int nu
  • 不区分大小写的 array_unique

    我正在尝试编写几行代码来创建一个不区分大小写的数组唯一类型函数 这是我到目前为止所拥有的 foreach topics as value lvalue strtolower value uvalue strtolower value if
  • for循环中更新JLabel的问题

    我的程序的想法是从之前在其他 JFrame 中保存的列表中选择一个名称 我想在标签中一个接一个地打印所有名称 它们之间有很小的延迟 然后停在其中一个名称上 问题是lbl setText String 如果有多个则不起作用setText co
  • matlab 中的 for 或 while 循环

    我刚刚开始在编程课的 matlab 中使用 for 循环 基本的东西对我来说很好 但是我被要求 使用循环创建一个 3 x 5 矩阵 其中每个元素的值是其行号其列号除以行号和列号之和的幂 例如元素 2 3 的值为 2 3 2 3 1 6 那么
  • php 打印 aa aaa ab aab 直到 zzz 的算法

    你好 我需要打印从 a 到 zzz 最多 3 个字母 例如我的输出应该是 A B Z AA AB AZ BA BB ZZ AAA AAB ZZZ 我在过去的 5 个小时里努力尝试 我找不到任何逻辑 我尝试了下面的代码 PHP 有一个方便的功
  • 一次分配多个字段的聪明方法?

    由于遗留函数调用 我有时被迫编写像这样的丑陋的包装器 function return someWrapper someField a someField a b someField b and so on realistically it
  • 使用循环将对象添加到列表(python)

    我正在尝试使用 while 循环将对象添加到列表中 基本上这就是我想做的 class x pass choice raw input pick what you want to do while choice 0 if choice 1 E
  • 如何停止无限循环?

    我正在编写一个程序 该程序将计算三角形或正方形的面积 然后提示用户是否希望计算另一个 我的代码已经运行到可以计算任一形状的面积的程度 但随后不再继续执行代码的其余部分 例如 如果选择了正方形 则计算面积 然后返回到正方形边长的提示 我假设这
  • CUDA 的嵌套循环

    我想将我的 C 代码移植到 CUDA 主要计算部分包含3个for嵌套循环 for int i 0 i lt Nx i for int j 0 j
  • 尝试修复我的功能

    我正在开发一个函数 我必须返回一个元组 其中第一个参数是最大数字的 str 第二个参数是 int 列表 这是示例以及我为该函数编写的内容 投票 G G N G C G 1 3 0 1 您必须将最大值的位置映射到正确的一方 parties N
  • IEnumerable.比带中断的 for 循环更快吗?

    我们的代码打开表单时遇到了一些缓慢的情况 这可能是由于for循环与break这需要很长时间才能执行 我把它切换到IEnumerable Any 并看到表格很快打开 我现在试图弄清楚是否单独进行此更改会提高性能 或者是否正在访问Product
  • PHP - While/Else 错误? [关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有以下
  • if/else 在 while 循环内正确缩进[关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 我开始学习 Python 编程大约几周了 我遇到了一些麻烦 下面的代码是一个小程序 用于检查列表中是否有偶数 如果找到第一个偶数
  • while循环内的递归,它是如何工作的?

    你能告诉我这段java代码是如何工作的吗 public class Main public static void main String args Strangemethod 5 public static void Strangemet
  • 非法的break语句(Node.js)

    尝试在 Node js 和 MongoDB 中查找唯一 ID 方法是创建一个 while 循环来查询 MongoDB 中的现有 ID 直到找到唯一值 如果 ID 已被使用 则最后的数字会递增 直到 Mongo 不返回任何内容 一切正常 除了

随机推荐

  • Spring Boot 中的 JAX-RS 和 MVC

    我有一个作为 MVC 工作的 Spring Boot 应用程序 我想在我的应用程序中使用 JAX RS 而不使用 Spring 注释 我将在不同的类中同时拥有 JAX RS 带注释的组件和 MVC 组件 当我添加 Jersey 资源配置时
  • Boost Container向量可以通过非原始指针管理内存吗?

    我有一个类似指针的结构来代替指针 与指针的区别在于它具有额外的信息 也是特殊的 分配器可以用来释放内存 这种类似指针的结构适用于所有基本用途 我可以分配和释放内存 解引用 增量 gt etc 现在我想使用这个指针来由类似STL的容器来管理
  • 邮递员到普罗米修斯和马车“\r”?第 1 行中的文本格式解析错误:预期浮点数作为值,得到“1\r”

    只是试图通过邮递员向普罗米修斯添加新的指标 但是得到 第 1 行中的文本格式解析错误 预期浮点数作为值 得到 1 r 度量就像 test metric 1 不带引号 为什么会发生这种情况以及如何将其从邮递员的请求中删除 原因在于之间的差异
  • 这里使用指针向量是不必要的还是更糟,会导致内存泄漏?

    我对 C 编程相对较新 但我是一名有 10 年经验的 C 程序员 因此我对对象的指针比对对象的引用更熟悉 我正在编写一款纸牌游戏 这种设计不安全吗 有没有更好的办法 无论如何 我还有课SolitaireGame class Solitair
  • 如何动态获取程序集名称[重复]

    这个问题在这里已经有答案了 我在图书馆里有一堂课是这样的 namespace Foo public abstract class EventBase public string EventSource gt Assembly GetExec
  • IE9 中的 iframe 中未发送 Cookie

    首先 我在发布这个问题之前做了一些研究 所以我知道P3P政策 https stackoverflow com questions 389456 cookie blocked not saved in iframe in internet e
  • php 多个 if 语句?

    抱歉 这看起来像是一个菜鸟问题 今天早上我的大脑无法运转 我正在尝试执行多个if声明 但他们的行为不正确 在找到它正在寻找的模板后 它似乎总是加载最少的模板 做这样的事情的最好方法是什么 post wp query gt post if i
  • 如何用Python中的其他字符替换字符串中的unicode字符?

    我有一个从阅读带有项目符号的 HTML 网页中获得的字符串 由于项目符号列表 这些项目符号具有类似 的符号 请注意 文本是来自使用 Python 2 7 的网页的 HTML 源代码urllib2 read webaddress 我知道项目符
  • 将物理网卡绑定到docker容器

    我的主机 PC 上安装了 4 个 NIC 我想启动不同的 docker 容器 并将不同的物理网卡绑定到每个容器 我能为docker做些什么 对于 VirtualBox 这可以通过为物理网卡的每个虚拟机创建桥接适配器来完成 当您使用 Dock
  • 版权元标记在 HTML5 中有效吗?

    W3C 验证器输出 第 5 行 第 41 列 元素元上的属性名称版权值错误 未注册关键字版权 我需要设置版权 任何想法 都柏林核心提出rightsHolder https www dublincore org specifications
  • 了解接口内部接口(嵌入式接口)

    我试图用以下代码来理解接口嵌入 我有以下内容 type MyprojectV1alpha1Interface interface RESTClient rest Interface SamplesGetter SamplesGetter h
  • 仅 CSS 3D 旋转文本

    我有一个带有一些文本旋转的 div 如何获得文本深度以提供更好的 3D 效果 为了澄清 在90deg文本变成1px厚 因为我们只能从侧面看到它 我该如何制作它 例如 10px厚的 此外 应显示适当的深度 即在0deg我们看不到深度 在45d
  • 在用户可见活动后执行方法

    我的活动包含太多 UI 控件 我想在使活动可见后执行一个方法 我尝试过的一个例子 public class Main extends Activity Override public void onCreate Bundle savedIn
  • Android 画布保存总是 java.io.IOException: 打开失败: ENOENT (没有这样的文件或目录)

    我有一个画布应用程序 我正在尝试创建一个签名应用程序Canvas onTouchListener 这是我的保存方法 我尝试将签名保存到图像中 private void save hideMenuBar View content this c
  • Travis 尝试将应用提交到 Google Play 商店时出错

    我首先研究了在 Github 上找到的几个要点 https gist github com lpetre 87a5196d14cf4484f1f2 https gist github com lpetre 87a5196d14cf4484f
  • sphinx4 中的语音识别响应很差

    目前我们正在研究使用 sphinx4 进行语音识别 我们正在努力为听写类型应用程序取得良好的响应 输入是一个 wav 文件 我们希望转录它 我研究了 Sphinx4 提供的 LatticeDemo 和 Transscriber 演示 当我使
  • SBT:依赖其他SBT项目而不发布

    我有一组松散相关的组件 其中一些组件依赖于其他组件 为了具体起见 我们假设我们有组件 common a 和 b common 没有任何依赖项 但所有其他项目都使用 common 此外 a 依赖于 b 所有组件都是用 Scala 编写的 我想
  • 为什么 MVC 在 GET 上使用 Modelstate 而不是提供的模型

    当 MVC 运行时ActionMethod它将填充ModelState字典并使用ModelBinder建立ActionMethod参数 如果有 它对两者都这样做GET and POST 这是有道理的 之后ActionMethod已成功运行
  • JPA 与 HIBERNATE 插入非常慢

    我正在尝试使用 JAP 和 HIBERNATE 将一些数据插入 SQL Server 2008 R2 除了速度非常慢之外 一切都 有效 要插入 20000 行 大约需要 45 秒 而 C 脚本大约需要不到 1 秒 有这个领域的资深人士可以提
  • 针对可怕的 While (True) 循环的最佳重构

    如果您像我一样在 While True 循环处颤抖 那么您一定也已经认真思考了重构它的最佳方法 我见过几种不同的实现 没有一个真正比其他实现更好 例如计时器和委托组合 那么 您想出或看到的重构可怕的 While True 循环的最佳方法是什