解决了

如何while循环在冷静实际工作?

  • 2021年12月15日
  • 4回复
  • 62的浏览量

Userlevel 1
徽章 +1

这就跟你问声好!

我需要帮助我的头脑如何在冷静的while循环工作。的文档很不幸,一点用都没有。: /

我不明白的第一件事就是循环有固定的迭代次数。这对我来说是循环。一个循环在条件不满足时运行。

第二件让人困惑的事情是,我可以将退出条件设置为成功、失败或不在乎。我想《不在乎》会让循环到实际的循环?

成功或失败的条件是我能够完全判断出来的,因为这是基于循环中任务的执行结果,而不是我所控制的参数。如果我选择“成功”作为退出条件,我是否必须故意让任务失败才能继续循环?

如果循环中有多个任务,退出条件触发时,所有任务都需要失败或成功吗?

是否有可能在我的脚本中设置一个参数,然后使用它作为退出条件?

谢谢。

图标

最佳答案Srinathgs.2021年12月16日,04:41

Hi Martin,<\/p>

\u00a0<\/p>

In most programming languages, While & For loop are usually convertible. If a variable initialisation, break condition and variable update mechanisms are given together, it constitutes a For loop and if just the break condition is present in the loop, it is a While loop.\u00a0<\/p>

\u00a0<\/p>

But, our implementation is inspired from a pythonic way of defining this, where For loop iterates over an iterable, such as a list, set, or a dictionary, whereas a While loop contains a condition.\u00a0<\/p>

\u00a0<\/p>

You can consider our While loop to be of the following implementation.<\/p>

\u00a0<\/p>

iteration = 0<\/code><\/p>

max_iteration = n<\/code><\/p>

can_continue = true<\/span><\/span><\/p>

while (iteration < max_iteration) or can_continue:<\/code><\/p>

\u00a0 \u00a0 can_continue = loop_body()<\/code><\/p>

\u00a0 \u00a0 iteration += 1<\/code><\/p>

\u00a0<\/p>

here, the can_continue<\/code> can be manipulated by the task that the loop is executing and currently, can_continue can be manipulated by the status of the loop_body as you\u2019ve found out.\u00a0\u00a0<\/p>

\u00a0<\/p>

Following is an example escript where I achieved the same.\u00a0<\/p>

\u00a0<\/p>

\"//www.jhbzcj.com/next/calm-application-management-55/\"
example escript<\/figcaption><\/figure>
\"//www.jhbzcj.com/next/calm-application-management-55/\"
While loop configuration<\/figcaption><\/figure>

This while loop exited on the 7th iteration when the task succeeded.\u00a0<\/p>

\u00a0<\/p>

\"//www.jhbzcj.com/next/calm-application-management-55/\"
Number of iterations for example while loop.<\/figcaption><\/figure>

\u00a0<\/p>

Please let me know if you need more details.\u00a0<\/p>","className":"post__content__best_answer"}">

查看原始

4回复

嗨,马丁,

在大多数编程语言中,While & For循环通常是可转换的。如果同时给出变量初始化、中断条件和变量更新机制,则构成For循环,如果循环中只有中断条件,则为While循环。

但是,我们的实现是从定义此定义的Pythonic方法的启发,其中循环通过迭代迭代,例如列表,集或字典,而一段时间循环包含一个条件。

您可以将While循环考虑为以下实现。

迭代= 0

max_iteration = n

can_continue = true

而(iteration < max_iteration)或can_continue:

can_continue = loop_body ()

迭代+ = 1

在这里,can_continue可以被循环正在执行的任务操作,当前,can_continue可以被loop_body的状态操作,正如你发现的那样。

下面是一个示例脚本,我实现了相同的。

例子escript
While循环配置

当任务成功时,这个while循环在第7次迭代时退出。

例如,循环的迭代次数。

如果你需要更多的细节,请让我知道。

Userlevel 1
徽章 +1

嗨Srinath。

谢谢你的解释。

我不熟悉Python,所以我不能说这在Python中是否是一个“有效的”while循环,但作为一个从小编写C和c++的人,我想说,使用for循环作为一个while循环并不是最佳实践。:)

您的实现似乎仍然是一种不必要的复杂方式,因为它迫使我指定最大迭代次数,当我可能不知道我需要多少迭代时。

依赖脚本的退出状态(我仍然不知道是哪个或所有的脚本触发了退出条件)是非常粗糙的,因为我可能会将我的退出代码用于其他目的。

为什么不使用一个适当的while循环来监视我在循环中的任何脚本中设置的参数?Calm读取脚本的“Set变量”类型的输出,那么为什么不使用它作为条件呢?

目前,我们将直接在脚本中编码循环,这是一个遗憾,因为我们非常希望使用Calm的UI来说明运行簿的逻辑,而不需要打开脚本。

Userlevel 4
徽章 +5

嗨,马丁,

我建议使用Nutanix支持门户网站,你提高一个RFE来帮助改善这一壮举,使它更用户友好。

感谢您的反馈。

Userlevel 1
徽章 +1

谢谢约瑟,我会的!

回复


Baidu