You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Dart测验代码输出疑惑:为何结果是1而非6?

Dart代码输出解析

先看这段代码的执行流程:

int var1 = 5;
int var2 = 6;
if ((var2 = 1) == var1)
print(var2);
else
print(var2++);
  1. 赋值操作优先于比较:(var2 = 1)是赋值语句,不是相等比较(相等比较是==)。这个操作会把var2的值从6改成1,同时整个赋值表达式的结果是被赋予的值——1。
  2. 条件判断结果:用赋值后的结果1和var1(值为5)比较,1 == 5不成立,所以进入else分支。
  3. 后置自增的执行逻辑:else里的var2++是后置自增运算符,规则是先使用变量当前的值,再对变量进行+1操作。此时var2的值是1,所以先把1传给print函数输出,之后var2才会变成2,但输出的已经是1了。

这就是为什么最终输出是1,而不是你预期的6。

内容的提问来源于stack exchange,提问作者Amr Emara

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 18:01:05