《Android游戏开发详解》——第1章,第1.5节运算
本节书摘来自异步社区《Android游戏开发详解》一书中的第1章,第1.5节运算,作者 【美】Jonathan S. Harbour,更多章节内容可以访问云栖社区“异步社区”公众号查看
1.5 运算
Android游戏开发详解
我们前面看到了,变量可以用来存储值,并且变量可以在运算中用作运算数,如图1-2所示。
![2cb80b38be1ce05797a8aed9ef10d832d66efff9](https://yqfile.alicdn.com/2cb80b38be1ce05797a8aed9ef10d832d66efff9.png)
1.5.1 算术运算
表1-1所列内容是你必须知道的5种算术运算。在了解示例的过程中,请记住如下两条规则。
规则 #1 涉及两个整数的一个运算,总是会得到一个整数的结果(整型变量中不允许有小数值)。
规则 #2 至少涉及一个浮点数(小数值)的运算,其结果总是浮点数。
![83c9838504ef3f6a5126b74b5beb6ab998ae4872](https://yqfile.alicdn.com/83c9838504ef3f6a5126b74b5beb6ab998ae4872.png)
1.5.2 运算顺序
在执行运算的时候,使用标准的运算顺序。计算机将会按照如下的顺序执行运算。
1.圆括号(或方括号)。
2.指数。
3.乘法/除法/余数。
4.加法/减法。
如下的示例说明了运算顺序的重要性。
print(2 + 5 % 3 * 4);——输出“10”。 print((2 + 5) % 3 * 4);——输出“4”。
1.5.3 关系/布尔运算
现在来看看在两个值之间进行比较的关系运算符,如表1-2所示。注意,在下面的示例中,算术运算在关系运算之前执行。如下所有的计算,都得到一个true或false值(布尔)。
![5b54503ef941e141d95c8068da062117a9b8dac8](https://yqfile.alicdn.com/5b54503ef941e141d95c8068da062117a9b8dac8.png)
注意,==运算符和=运算符不同。前者(==)用来比较两个值,并且输出一个true或false值。后者(=)用来将一个值赋值给一个变量。
下面的程序清单1.4展示了使用这些关系运算符的另外两个示例。我已经给每一条print语句加上了标签,以便你可以看到相应的输出。
程序清单1.4 关系运算符
01 print(1 == 2); // #1 (equal to) 02 print(!(1 == 2)); // #2 (inverse of print # 1) 04 int num = 5; 05 print(num // #3 (less than) 07 boolean hungry = true; 08 print(hungry); // #4 09 print(hungry == true); // #5 (equivalent to print #4) 10 print(hungry == false); // #6 11 print(!hungry); // #7 (equivalent to print #6)
程序清单1.4的输出如下所示。
true false false false
下面几个小节将会假设你理解关系运算符如何工作,因此,确保你理解每条打印代码行中发生了什么。仔细看一下程序清单1.4中的示例#5和示例#6,理解为什么我们要省略==运算符。
1.5.4 条件运算符
两个主要的条件运算符是|| (OR)和 (AND)。如果|| (OR)运算符任意一边的布尔值为真,该运算符将求得真。只有 (AND)运算符两边的布尔值都为真时,该运算符才会求得真。
我们假设你想要判断一个给定的数字是否是正的偶数。要做到这一点,必须检查两个条件。首先,我们必须确定该数字是正的。其次,我们必须检查该数字是否能够被2整除。程序清单1.5给出了我们可能为此而编写的代码的一个示例。
程序清单1.5 条件运算符
1 // Remember to evaluate the RIGHT side of the = operator before 2 // assigning the result to the variable. 3 int number = 1353; 4 boolean isPositive = number // evaluates to true 5 boolean isEven = number % 2 == 0; // evaluates to false 6 print(isPositive isEven); // prints false 7 print(isPositive || isEven); // prints true
异步社区 异步社区(www.epubit.com)是人民邮电出版社旗下IT专业图书旗舰社区,也是国内领先的IT专业图书社区,致力于优质学习内容的出版和分享,实现了纸书电子书的同步上架,于2015年8月上线运营。公众号【异步图书】,每日赠送异步新书。
相关文章
- [Android Pro] android 4.4 Android原生权限管理:AppOps
- [Android Pro] 利用tcpdump和wireshark对android网络请求进行分析
- Android_(游戏)打飞机05:处理子弹,击中敌机,添加计分板
- Android 开发之旅:短信的收发及在android模拟器之间实践(一)
- Android 开发之旅:短信的收发及在android模拟器之间实践(二)
- Android游戏开发基本知识
- 【Android 疑难杂症1】android.content.ActivityNotFoundException: Unable to find explicit activity class
- 【ANDROID游戏开发之一】设置全屏以及绘画简单的图形
- 【ANDROID游戏开发之五】游戏注册界面DEMO-实现两个ACTIVITY之间的切换与数据交互!
- 【ANDROID游戏开发十三】(保存游戏数据 [下文])详解SQLITE存储方式,并把SQLITE的数据库文件存储在SD卡中!!!
- 【ANDROID游戏开发二十】物理游戏之重力系统开发,让你的游戏变得有质有量!
- 【IOS-COCOS2D-X 游戏开发之十五】COCOS2DX中响应ANDROID的BACK(返回)与MENU(小房子)事件&&COCOS2DX自动释放粒子内存函数!
- macos安装android studio(Android Studio 2021.1.1)
- android开发分享Android中外接键盘的检测的实现
- 【Android 逆向】逆向修改游戏应用 ( 分析应用结构 | 定位动态库位置 | 定位动态库中的修改点 | 修改动态库 | 重打包 )
- Please ensure that adb is correctly located at 'D:Androidandroid-sdkplatform-toolsadb.exe' and