gpt4 book ai didi

java - 检查 int 是否在两个数字之间

转载 作者:太空宇宙 更新时间:2023-11-04 09:20:59 26 4
gpt4 key购买 nike

如果你试图找出 int 是否在数字之间,为什么不能这样做:

if(10 < x < 20)

取而代之的是,你必须这样做

if(10<x && x<20)

这似乎有点开销。

最佳答案

一个问题是三元关系构造会引入严重的解析器问题:

<expr> ::= <expr> <rel-op> <expr> |
... |
<expr> <rel-op> <expr> <rel-op> <expr>

当您尝试使用典型的 PGS 来表达这些产生式的语法时,您会发现在第一个 <rel-op> 处存在移位归约冲突。 。解析需要向前查找任意数量的符号以查看是否存在第二个 <rel-op>在它可以决定是否使用二进制或三元形式之前。在这种情况下,您不能简单地忽略冲突,因为这会导致错误的解析。

我并不是说这个语法有致命的二义性。但我认为你需要一个回溯解析器来正确处理它。对于以快速编译为主要卖点的编程语言来说,这是一个严重的问题。

关于java - 检查 int 是否在两个数字之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58325247/

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