find(c: CHARACTER; position: INTEGER): INTEGER
此功能通过从位置 i 开始并搜索来查找字符。一旦找到索引,它就会输出它。但是,如果单词中不存在这样的字符,则输出 0
问题: 后置条件必须断言查询返回字符 c 在 pos .. word.count 范围内的 word 中的索引,如果没有这样的字符,则返回零。
我的代码:
find(c: CHARACTER; position: INTEGER): INTEGER
require
.....
do
.....
ensure
across word as w
some
(w.item = c and w.cursor_index >= position)
end
end
这种布尔相等的问题在于,当使用 find(c,pos) 并且没有找到任何内容时,该功能会引发后置条件违规。
我正在尝试使其仅在单词中不存在给定的 c 字符时才允许该功能输出