gpt4 book ai didi

java - 将 != 与计数器控制的循环一起使用

转载 作者:可可西里 更新时间:2023-11-01 18:41:18 24 4
gpt4 key购买 nike

今天的最后一个问题...我明天会回来...我有很多事情要跟进...

我在看 Reilly Java 文本 - 谈论计数器控制的循环模式..(不管是什么语言..)

计数器控制循环(for、while 等)和嵌套循环的作者...使用 != 进行测试...现在我意识到 != 用于事件控制循环的某些情况,例如哨兵或EOF 类型的循环 - 但对我来说 - 将它与计数器控制的循环一起使用是一个坏主意......非常容易出错......

例子:

x = 0;
while (x != 100) {
y = 0;
while (y != 100) {

...
y++;
}
x++;
}

只是说...使用其他关系运算符...会更好吗

x = 0;
while (x < 100) { //or even better some defined constant...
y = 0;
while (y < 100) {

...
y++;
}
x++;
}

据我所见,这通常是文本中呈现的方式..classes.etc..

再一次 - 你是否认为这很糟糕 - 或者只是一种不同的方式......谢谢...

最佳答案

您希望循环条件与所需的后置条件完全相反。

i= 0;
while( i != 100 ) {
i += 1;
}
assert i == 100;

您可以简单地看到循环后置条件与循环终止条件完全匹配。没有 secret 。

此外,您可以从初始条件和主体证明它将达到 100 而不会“以某种方式”神奇地跳过一个值。

如果你有一个非常复杂的循环体,那么简单的并行结构是必不可少的。

如果您使用 Weakest Precondition techniques为了从后置条件导出循环,循环条件将是如上所示的简单匹配条件。

i < 100这是一个坏主意,因为你的循环可能有一个不正确的主体,它严重增加了变量并且仍然“看起来”可以工作。

关于java - 将 != 与计数器控制的循环一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1014396/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com