“状态”的定义


15

在状态变量或状态机中为新的(以前是非)程序员定义“状态”的好方法是什么?有什么好的方法可以解释为什么这个概念对编写软件有用?通常在开始编程课程或书本中明确教过国家概念吗?

Answers:


5

当您需要记住某件事时,需要“状态”。理想情况下,功能(不是“方法”或其他方法)仅取决于其输入。如果您问一个问题,即使输入内容相同,答案也会随时间变化,那么您需要记住一些答案的差异,对吗?否则,您将无法给出其他答案,因为没有其他因素发生变化(假设答案不直接取决于时间)。

您需要记住的“事物/信息”称为“状态”。

(不需要此“状态”随时间变化,基本上只是说“记住/知道某事”的一种方式)


1
我认为这是最好的答案,如果改写为非程序员可以理解的话。说:所有活动都处理事物和/或信息。这以三种方式发生:1)任何活动都可能采取使用读取某些东西:其输入;2)它可能产生东西:它的输出;3)在进行过程中,它可以保存保存记忆存储某些东西:其状态。对于大多数计算机程序,所有输入,输出和状态都由信息组成,而对于其他类型的活动(例如烹饪),通常也涉及物理对象。
reinierpost 2012年

8

来自维基百科

状态通常是指系统或实体的当前状态。

这在计算上下文中几乎意味着什么:定义某些对象或系统条件的数据。

“状态”的含义并不特定于编程。从字面上看,到处都有“状态”的例子。电视关了。咖啡很热。运动鞋是a)蓝色的;b)有臭味;c)不收起;d)相当破旧。在编程意义上的“状态”与在非编程意义上的“状态”相同,只是我们将其应用于所处理的对象:变量,对象,线程,数据库,文件系统等。对其进行解释,以熟悉的术语进行解释-无需将其变成外国的技术概念。

时钟是具有某些状态的简单系统的一个很好的例子:时钟可以运行或不运行,它指示的时间可能与实际时间相对应。很容易看到这些东西如何像变量一样,以及改变时钟状态如何影响其他东西。

将其与无状态的内容进行比较,例如以下语句:“门是红色的。” 语句本身没有状态。门为红色可能是正确的,也可能不是,但是语句本身不包含任何状态。油漆门可以改变陈述的真实性,但是陈述本身永远不会改变。类似地,像42这样的数字没有任何状态:42是42,您无法更改。

变量有状态,没有。


1
@ hotpaw2“状态”的含义并不特定于编程。从字面上看,到处都有“状态”的例子。电视关了。咖啡很热。运动鞋是a)蓝色的;b)有臭味;c)不收起;d)相当破旧。“国家”在编程的意义是一样的,如非编程意义上的“国家”,但我们把它应用到我们处理的对象:变量,对象,线程,数据库,文件系统,等等
迦勒

1
因此,您将通过使用具体示例向编程专业的学生解释它吗?似乎是个好主意。它是否可以有效地转移给他们了解他们程序中的状态?
hotpaw2

2
@ hotpaw2将我的评论上移至答案,并扩大了一点。至于理解,我认为最好不要与初学者一起过多地关注摘要中的“状态”。大多数人需要一些具体的例子,才能真正认识到更通用的模式。
卡勒布(Caleb)2012年

1
不清楚为什么“咖啡很热”是有状态的,但是“门是红色的”是无状态的?相反,这意味着“咖啡是黑的”是无状态的,而“门是热的”是有状态的吗?
亚当·休斯

1
@AdamHughes看看我在哪里使用了引号-具体地说,我在谈论咖啡时没有使用引号,因为我指的是实际的咖啡,而不是关于咖啡的陈述。重点是解释变量和值之间的区别。我家的实际门有状态:它可能是打开或关闭,红色或蓝色或绿色,热或冷等。有关门的声明可以指示该状态,但该声明本身是不可更改的。
卡雷布

1

状态是程序用来完成某些任务的信息。它是在程序的整个运行过程中被更改或操纵的数据或信息。程序在给定时间的“状态”是指程序当前正在查看或分析以执行下一步的所有数据的快照。

我的大学始于Scheme,所以我们开始使用无状态模型进行编程。然后,我们切换到C,非常清楚地知道什么是状态,为什么有用,以及为什么它会使事情变得非常复杂。因此,有些大学当然会谈论国家,但不一定都


1

您可以使用交通信号灯的类比,它可以处于以下三种状态之一:[绿色],[黄色]或[红色]。一次只能处于一种状态。交通灯是正在建模的实际状态机。通常,它会从[绿色到黄色],然后从[黄色到红色],然后从[红色到绿色]转换其状态。

在此处输入图片说明

另一种状态转换(在某些国家(例如英国)有效,它具有[红色到黄色,然后从黄色到绿色]的两个转换来代替[红色到绿色]的转换。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.