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

在if语句中能否使用两个数学条件?黑杰克程序条件判断报错求助

解决黑杰克程序中的条件判断语法错误

嘿,我看到你在开发黑杰克程序时遇到了条件判断的语法问题,这是个很典型的新手容易踩的坑,咱们来快速搞定它!

错误原因分析

你写的代码:

if(dValue1 + dValue2 > pValue1 + pValue2 && < 21)

之所以会报 Type mismatch : cannot convert from int to boolean 和 The operator && is undefined for the arguments types boolean, int 这类错误,核心问题在于逻辑运算符&&的两边必须都是完整的布尔表达式。你在&&右侧只写了<21,编译器完全不知道你要拿什么值和21比较——它需要的是类似X < 21这样完整的判断,而不是孤零零的<21。

正确的写法

我们可以分两种方式来修正:

方式1:直接补全布尔表达式

把庄家的手牌总和在&&右侧重复写一遍,让两边都是完整的判断:

if(dValue1 + dValue2 > pValue1 + pValue2 && dValue1 + dValue2 < 21)

方式2:先计算总和到变量(更推荐)

先把庄家和玩家的手牌总和分别存入变量,这样代码可读性更高,后续如果需要复用总和也不用重复计算:

int dealerTotal = dValue1 + dValue2;
int playerTotal = pValue1 + pValue2;
if(dealerTotal > playerTotal && dealerTotal < 21) {
    // 这里写庄家获胜的逻辑
}

额外小提示

如果你的黑杰克程序后续要处理A牌(可以当1或11)的情况,那手牌总和的计算逻辑会更复杂,到时候可以再针对这部分做调整,但当前先把基础的条件判断语法搞定就好啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 04:16:05