【发布时间】:2011-01-25 13:03:45
【问题描述】:
接下来要做的最优雅的方式是什么:
int i = oneOrZero;
if (i == 0) {
i = 1;
} else {
i = 0;
}
您可以假设i 只能有 1 或 0 值。
【问题讨论】:
-
oneOrZero 业务是用来做什么的?我看到你让程序员断言 i 只是 1 或 0,但这不是编译器强制执行的。为什么不使用布尔值或枚举?
-
让我澄清一下:你为什么要使用 int 来表示 (1) 只有两个值的东西(不是由整数类型强制执行的)和 (2) 其值被翻转的东西?
-
我同意@Carl 的观点,这是一个人为的样本。从外面看,这段代码似乎没有做任何有用的事情。这只是您问题的一个样本吗?为什么不把 oneOrZero 倒置一开始呢?
-
@GrayWizardx,@Carl:这是我的问题。我想写整数,我这样做。在删除与这个具体问题无关的所有依赖项之后,它只是一段代码。
-
我的意图不是冒犯,而是建议也许有更多的上下文,人们可以使用不同的数据类型提供更好的解决方案。当然,如果你已经满意了,那么无视我是正确的做法。