做 App 的时候,你觉得最离不开却又最容易被忽视的积木是什么?答案就是——数学运算积木。无论是计算购物总价、处理传感器数据,还是做游戏里的碰撞检测,数学积木都是幕后英雄。今天我们就把 App Inventor 2 中所有数学积木翻个底朝天,让你以后遇到任何计算需求,都能第一时间找到合适的积木。
App Inventor 2 的基础运算积木包括 加(+)、减(-)、乘(*)、除(/) 和 幂运算(^)。
其中,加法和乘法积木是可扩展块(Mutator),点击右上角的齿轮图标,可以拖入更多的输入槽,实现三个甚至更多数字同时运算:
加法: 1 + 2 + 3 + 4 = 10 (一个积木搞定,不用嵌套)
乘法: 2 × 3 × 4 = 24 (同理,一个积木搞定)幂运算积木 ^ 也非常实用:2 ^ 3 = 8,省去重复写乘法。
💡 小技巧:带有数字值的块(如列表长度、文本长度、变量值)都可以直接接入数学运算积木,不需要先转换为数字类型。
六种比较积木返回 真(true) 或 假(false),是 if/else 条件判断的基础:
积木 | 含义 | 示例 |
|---|---|---|
| 等于 | 5 = 5 → 真 |
| 不等于 | 5 ≠ 3 → 真 |
| 大于 | 5 > 3 → 真 |
| 大于等于 | 5 ≥ 5 → 真 |
| 小于 | 3 < 5 → 真 |
| 小于等于 | 5 ≤ 5 → 真 |
很多人不知道,App Inventor 2 的数字块除了十进制,还直接支持二进制、八进制和十六进制输入:
0b10 = 十进制 20o14 = 十进制 120xd4 = 十进制 212进制数字块还可以通过下拉菜单切换输入模式,这在处理硬件通信、蓝牙数据时非常好用。
积木 | 说明 | 示例 |
|---|---|---|
四舍五入(round) | 小数部分 <0.5 向下,>0.5 向上;正好 0.5 时向偶数取整 | round(2.5)=2, round(3.5)=4 |
上取整(ceiling) | 返回 ≥ 该数的最小整数 | ceiling(3.01)=4 |
下取整(floor) | 返回 ≤ 该数的最大整数 | floor(3.88)=3 |
⚠️ 注意 round 的"向偶数取整"规则(Banker's Rounding),这是国际标准 IEEE 754 的做法,不是 Bug!
三个随机数积木:
1 到 100 和 100 到 1 效果一样// 骰子游戏:生成 1-6 的随机数
调用 随机整数(1, 6)
// 概率测试:用固定种子确保多次运行结果一致
调用 设定随机数种子(42)通过下拉菜单可以切换的函数积木:
这三个概念最容易混淆,记住这个区别:
mod(-11, 5) = 4remainder(-11, 5) = -1表达式 | 求模 | 余数 |
|---|---|---|
(11, 5) | 1 | 1 |
(-11, 5) | 4 | -1 |
(11, -5) | -4 | 1 |
(-11, -5) | -1 | -1 |
做循环索引、数据分页时,求模是最常用的。处理硬件协议时,余数更符合底层逻辑。
这是进阶玩家最爱的部分。App Inventor 2 提供三种按位运算:
将第 N 位设为 1(按位或操作):
操作 | 原值 | 运算 | 结果(二进制) | 结果(十进制) |
|---|---|---|---|---|
第1位置1 | 1010 | | 0001 | 1011 | 11 |
第2位置1 | 1010 | | 0010 | 1010 | 10 |
第3位置1 | 1010 | | 0100 | 1110 | 14 |
第4位置1 | 1010 | | 1000 | 1010 | 10 |
将第 N 位设为 0(按位与操作):
操作 | 原值 | 运算 | 结果(二进制) | 结果(十进制) |
|---|---|---|---|---|
第1位置0 | 1010 | & 1110 | 1010 | 10 |
第2位置0 | 1010 | & 1101 | 1000 | 8 |
第3位置0 | 1010 | & 1011 | 1010 | 10 |
第4位置0 | 1010 | & 0111 | 0010 | 2 |
💡 优化技巧:由于 App Inventor 没有移位操作,可以用一个列表存
[1, 2, 4, 8, 16...],然后取出对应值做位运算,代码量比多分支判断少很多,逻辑也更清晰。
"10" 从十进制转二进制得到 "1010"。App Inventor 2 的数学积木远比想象中强大——从基础四则运算到进制转换,从随机数生成到位运算,覆盖了绝大部分 App 开发中的数学需求。掌握这些积木,你就能:
建议把这篇指南收藏起来,开发时当字典查,随用随翻。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。