问题标签 [relational-operators]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
38 浏览

c - 比较相似的数据类型无效?

我正在研究一个应用程序项目,以找出在德州扑克游戏中获胜的概率。

我的程序有下面给出的 3 种数据类型。

我在编写断言函数以检查洗牌后卡片是否重复时遇到了一个问题。错误说我正在比较无效的数据类型。错误消息的图像是:

错误信息

所以从技术上讲,我仍在比较相似的数据类型,但它们是无效的。谁能帮我?

0 投票
2 回答
60 浏览

c - 即使没有错误,其他条件也不起作用

我正在使用 if else 条件在 c 中制作一个程序,它运行得非常好,没有任何错误,但它没有运行 else 条件(即,即使我给它输入了应该打印 else 条件的输入,它也给了我else if 条件而不是 else 条件),这里是代码

0 投票
2 回答
144 浏览

c - 有符号和无符号字符之间的比较

我几乎假设这是一个愚蠢的问题......但我真的找不到答案。所以我在这里问这个。

为了了解隐式类型转换,我在 C 上运行以下代码。

当我运行这个程序时,什么也没发生。

在第一次迭代时,我发现for循环的循环条件为假,所以程序立即退出了for循环。

但是,我不明白为什么。

据我所知,C 在分配或比较不同类型的变量时会进行隐式转换。所以我认为 on i = cnt - 2,减法运算使值 -3,然后隐式转换为 i 分配值 253。

那么,条件不应该i < cnt为真,因为(由于比较有符号和无符号字符而通过另一个隐式转换 cnt)253 小于 255?

如果不是,为什么这是假的?有什么我错过的还是有一些我不知道的例外?

0 投票
1 回答
42 浏览

c - C 关系运算符 if-else

n 的 if-else 应该打印“是” 但输出是“否”
为什么0<n<1000不起作用

0 投票
1 回答
35 浏览

python - 我无法获得任何类型的输出

这是我的python代码:我最后得到的唯一输出是“真” 为什么我没有收到其他人的输出?请帮忙。我在 Visual Studio 代码上使用 jupyter notebook。内核:Python 3.9 64 位

0 投票
4 回答
142 浏览

c++ - 如何比较 const char* 字符串?

首先,考虑这个例子:

我期望什么:由于 "123" 是 a const char*,我希望这些字符串的 ADDRESSES (就像其中一个答案所说的那样)进行比较。

...因为!=并且==只会比较这些字符串的基地址。不是字符串本身的内容。

但输出仍然是1. 好吧,我们实际上不知道如何比较两个纯右值对象的地址(或者至少我不明白它是如何完成的)。所以让我们将这些字符串声明为变量,看看会发生什么:

输出仍然是1. 所以const char*弦不会衰减?或者编译器设法进行一些优化并只为一个字符串分配内存?好的,让我们尽量避免它们:

结果还是一样。这让我觉得const char*真的不会腐烂。但这并没有让我的生活变得更简单。那么const char*s 是如何比较的呢?

为什么这里的输出是1

a小于b,就字典比较而言,但这里a更大。那么如何const char*实现 s 的比较呢?

0 投票
0 回答
18 浏览

string - 在例如 CSS 中是否有字符串运算符(例如 $=、^=)的(与语言无关的)名称?

有一组运算符,例如在 CSS 属性选择器或 youtube-dl 的格式选择语法中使用,类似于更传统的关系运算符,例如 ==,但选择开头、结尾等。
具体来说,我在想运算符*=, ^=, $=和不太常见~=, |=
的语法本身(例如$,在字符串的开头)可能源于正则表达式(或者可能更早),但与我们可以分组==, <=, >, etc.为“关系运算符”的方式相同,是否存在提到的字符串运算符的名称?

0 投票
1 回答
54 浏览

c - 关系运算符

我对test函数的结果感到困惑,-1如下所示。

0x0135fb00now 是我的 da 值和 a 的地址
0x0135faf4现在是我的 db 值和 b 的地址

据我所知,如果为真,则关系运算符返回 1,如果为假,则返回 0,所以在这种情况下,我们应该:

*da > *db --> 1
因为da(a 的地址)的值大于db(b 的地址)的值。
*da < *db --> 0
因为da(a 的地址)的值不小于db(b 的地址)的值。
所以 1-0 是 1。
只是为了说明,我通过调试器比较 da 的值和 db 的值得出了这个结论(我使用 Visual Studio 和默认的 C 编译器)。我错过了什么?
PS:我在GNU 官方网站上遇到过这段代码。

0 投票
4 回答
114 浏览

c++ - 将无符号整数与负文字进行比较

我有这个简单的 C 程序。

当我运行它时输出 -

Godbolt 中重新创建

我的问题是为什么foo(99)返回 true 但bar(99)返回 false。

bar对我来说,返回 false是有道理的。为简单起见,假设 long 是 8 位,然后(使用二进制补码作为有符号值):

所以很明显 CMP 指令会看到 1111 1110 更大并返回 false。

但我不明白函数的幕后发生了什么foo。的程序集foo似乎硬编码为总是 return mov eax,0x1。我本来希望foo做类似的事情bar。这里发生了什么?

0 投票
3 回答
51 浏览

c++ - 如果数字不在两个值之间,为什么它会显示总和?

如果数字小于或等于 1 或 1000,我希望它不显示总和的结果。我不知道 usingif是否是最好的方法,但这就是我尝试使用的方法,我真的不明白为什么它不起作用。||我也尝试用and编写条件&&,但那些也不起作用。