1.8. 逻辑运算
问题我想检测两个值的大小
解决办法使用==号来比较两个值,使用
isNaN( ) 来检测是否是有效值.
讨论==号表达式总是返回布尔值来表示两个值是否相等。当两个数类型不同时,比较时会自动转换为相同的类型再进行比较,如字符型的6和数字型的6比较的话被认为相等。
trace(5 == 6); // : false trace(6 == 6); // : true trace(6 == "6"); // : true trace(5 == "6"); // : false默认的工程项目,在运行上面的代码会出错。因为编译器被设置为强类型编译检测。关掉强类型检测,会把数字型转换为字符型,然后再进行比较。一般不推荐关闭强类型检测,这样可能会引发一些隐蔽的错误不利于程序稳定。
当两个数值不相等时,
!=操作符将返回
true,否则为
falsetrace(5 != 6); // : true trace(6 != 6); // : false trace(6 != "6"); // : false trace(5 != "6"); // : true同样,只有在关闭强类型检测后才能编译通过。
平时要注意不要把
==写成
=,否则会出现无法预料的错误。比如:
var quantity:int = 5; // 下面的代码是错误的,正确应为
if (quantity == 6) if (quantity = 6) { trace("Rabbits are bunnies."); } trace("quantity is " + quantity); // 输出: quantity is 6 可以使用
is 操作符来检测数据类型
var quantity:int = 5; if (quantity is int) { trace("Yippee. It's an integer."); }然而有些数值是非法的。下面的代码中quantity 等于
NaN (一个表示无效数字的常数)
var quantity:Number = 15 - "rabbits";NaN 虽然是无效的数值,但它的数据类型仍属于
Number ,
trace(typeof quantity); // 显示: "number"
所以,为了测试有个number变量类型不是数字,但又是合法的number,尝试下这么写:
var quantity:Number = 15 - "rabbits"; if (quantity is Number) { //看起来好像正确,实际上是错误的,因为quantity != NaN 结果被认为都是false if (quantity != NaN) { trace("Yippee. It's a number."); } } 为了检测一个数字是不合法的,要使用指定的函数
isNaN( ) 看下面的例子:
var quantity:Number = 15 - "rabbits"; if (isNaN(quantity)) { trace("Sorry, that is not a valid number."); }如果要检测相反条件,只要取反就可以,比如为了检测一个变量是个合法的number,使用
!isNAN( ),如下:
var quantity:Number = 15 - "rabbits"; if (!isNaN(quantity)) { trace ("That is a valid number."); }当然了你还可以使用<和>比较符号来比较两个值得大小。
trace(5 < 6); // 显示: true trace(5 > 5); // 显示: false还有<= 和>= 符号
trace(5 <= 6); // 显示: true trace(5 >= 5); // 显示: trueActionScript 数据类型的比较有两个情况。在ActionScript中,数据类型分为两类:基本类型
(string, number, and Boolean) 和复合类型(object, sprite, and array)。当比较基本类型时,是比较他们的值,下面的例子中 quantity 和 total 被认为是相等的因为他们包含相同的值6
var quantity:Number = 6; var total:Number = 6; trace (quantity == total); // 显示: true
然而,当比较符合数据类型时是通过他们的“引用”来比较。当两个引用所指向的对象完全相同才被认为是相等的,而不仅仅是对象的内容相同。例如,两个数组包含相同的内容,但是他们却不相等:
// 用相同的内容创建两个数组
var arrayOne:Array = new Array("a", "b", "c"); var arrayTwo:Array = new Array("a", "b", "c"); trace(arrayOne == arrayTwo); // 显示: false
只要当引用指向同一个object, array, 或 sprite 才相等. 例子:
// 创建一个简单的数组
var arrayOne:Array = new Array("a", "b", "c"); // 创建另一个变量指向同一个数组
var arrayTwo:Array = arrayOne; trace(arrayOne == arrayTwo); // 显示: true
分享到:
相关推荐
软件内置丰富的指令库,覆盖基本逻辑控制、定时器、计数器、数学运算、模拟量处理等功能,满足各种复杂控制需求。 4. **在线调试与故障诊断** 在连接到实际PLC设备后,InoProShop可进行在线调试,包括程序下载、...
Amplify Shader Editor的出现,极大地简化了Shader开发流程,让开发者能够通过拖拽节点的方式构建Shader逻辑,同时提供了丰富的预设和示例,帮助用户快速理解和应用各种视觉效果。 在1.8.9.035版本中,Amplify ...
1. **节点系统**:ASE提供了一个庞大的内置节点库,涵盖了各种常见的图形处理操作,如颜色运算、纹理采样、数学运算等。通过拖拽节点并连接它们,用户可以构建复杂的Shader逻辑。 2. **实时预览**:在ASE中,用户...
1. **图形化工作流程**:ASE采用节点式界面,用户可以通过连接不同的节点来构建着色器逻辑,无需编写复杂的GLSL或CG代码。这种可视化方法使得即使是对编程不太熟悉的艺术家也能快速上手。 2. **广泛的节点库**:ASE...
它的节点库包含了各种数学运算、纹理采样、颜色操作和高级图形技术,例如法线映射、置换贴图、屏幕空间反射等。 在ASE中,用户可以通过拖拽节点并连接它们来构建Shader逻辑,每个节点代表一个特定的计算或功能。这...
1. **节点式编辑器**:ASE提供了一个可视化的图形界面,用户可以通过拖拽节点并连接它们来构建着色器逻辑。每个节点代表一个特定的计算操作,如纹理采样、数学运算、颜色混合等。 2. **实时预览**:在编辑过程中,...
3. 编辑节点:通过连接不同类型的节点,如颜色、纹理、数学运算、时间和空间变换等,构建Shader逻辑。 4. 实时预览:在Unity编辑器中即时查看效果,进行调整。 5. 应用特效:将完成的特效附加到场景中的对象上,或者...
Amplify Shader Editor v1.8.9.012 是一个专为 Unity 开发者设计的强大图形着色器编辑工具。它极大地简化了创建、编辑和管理自定义着色器的过程,尤其适用于那些希望在游戏开发中实现独特视觉效果的用户。这款工具...
在"Amplify Shader Editor v1.8.unitypackage"中,我们得到的是该工具的一个版本更新,版本号为1.8。这个Unity包文件包含了Amplify Shader Editor的所有组件和资源,可以方便地导入到Unity项目中。一旦导入,开发者...
它通过直观的图形界面,使得创建复杂的Shader逻辑变得简单,无需深入理解低级编程语言如GLSL或HLSL。在这款工具的帮助下,用户可以通过拖拽节点和连接线来构建Shader程序,极大地提升了工作效率。 Amplify Shader ...
1. **可视化工作流程**:通过拖拽和连接节点的方式,用户可以轻松构建着色器逻辑。这对于初学者来说降低了学习曲线,同时也提高了专家级开发者的工作效率。 2. **广泛的节点库**:包含了大量的预定义节点,如数学...
在Java中,可以结合几何运算和对象的位置信息进行判断。 3. **游戏循环**:游戏通常有一个主循环,处理输入、更新游戏状态、渲染画面。在Java中,可以使用Thread或ScheduledExecutorService来实现游戏循环。 4. **...
2. **可视化编辑器**: Amplify Shader Editor提供了一个直观的拖拽界面,允许用户通过连接各种节点来构建着色器逻辑,而不是编写复杂的GLSL或HLSL代码。这极大地降低了学习曲线,提高了效率。 3. **支持Unity 2018*...
在"1.8 运算器部件实验:算术逻辑运算单元"这个实验中,学生可以通过动手实践来理解和掌握ALU的工作原理。实验可能包括设计和搭建简单的ALU模型,模拟执行各种运算,从而直观地理解ALU如何处理二进制数据。 通过...
逻辑运算 - **逻辑运算符**: 包括 `&&` (与), `||` (或), `!` (非) 等。 - **比较运算符**: 如 `==`, `!=`, `, `>`, `, `>=` 等。 #### 1.9. 执行条件语句 - **if 语句**: 用于根据条件执行代码块。 - **switch ...