在 VEXcode Pro V5 中使用布尔值

The VEX Visual Studio Code Extension has replaced VEXcode Pro V5, which is now end-of-life.

VEXcode Blocks and VEXcode Text remain actively developed and supported for all VEX platforms.

“bool”数据类型生成逻辑真或假。

逻辑/布尔运算符

逻辑/布尔表达式
如果(<boolean expressions>)
	{
	.....<block>
}

<boolean expressions> 将包含要计算的单个或复杂表达式。 <block> 表示只有当 <boolean expressions> 被评估为 true 时才会执行的代码块。

更多布尔表达式:
布尔表达式 这是什么意思
如果(x==10) 如果 x 等于 10
如果 (x <= 10) 如果 x 小于 等于 10
如果(x > 10 || y > 20) 如果 x 大于 10 y 大于 20
如果 (x <= 10 && y <= 20) 如果 x<=10 y<=20
如果 !(x > 10 || y > 20) 如果 x<=10 y<=20
如果 ( !( x <=10 || x >=20) ) 如果 x>10 x<20

使用布尔表达式时要特别小心!

布尔类型 (bool) 是一个简单的整数值。

我们来看看 if (... ) 是如何解释的:

  • if (...) 将由编译器计算;它产生真或假的含义。
  • 事实是:当 ( ... ) 产生 0 以外的任何值(即零)时, if ( .... ) 将意味着 true。
  • 所以:以下表达式始终为真:
    • 如果 (1)
    • 如果 (10)
    • if(任何结果非零)

     

必须注意的常见错误:

示例1:

整数X=10,Y=20;
if (X = Y)
	Brain.Screen.print("X 和 Y 相同。");   
else
	Brain.Screen.print("X 和 Y 不同。");

输出:X 和 Y 相同。 

为什么?

if (X = Y)实际上意味着:

  • 将 Y 赋给 X,因此 X 的值为 20 
  • 编译器将其解释为 if (20),其中 (20) 为 true,但它不是 (0)。

示例2:

整数X=0,Y=0;
if (X = Y)
	Brain.Screen.print("X 和 Y 相同。");   
else
	Brain.Screen.print("X 和 Y 不同。");

输出:X 和 Y 不同。 

为什么?

if (X = Y) 实际上意味着:

  • 将 Y 分配给 X,因此 X 的值为 0(零)。
  • 编译器将其解释为: (0) 为 false。

For more information, help, and tips, check out the many resources at VEX Professional Development Plus

Last Updated: