运算符包括算数、比较、逻辑、位、三项、转型和赋值运算符等,它们将会用与各个方法中;流程控制语句包含if else、switch case、for、while、do while等,其中switch case 要比if else运算速度快,for循环比较常用。
【Android】学习札记第1章之运算符和流程控制
一、基本数据类型运算符
-
+ - * / %
++、-- 自增自减运算:
int a=10;System.out.print(a++);//打印的是a的原值10,a自增变成11
int a=10;System.out.print(++a);//打印的是a的新值11,a自增变成11
(2)比较运算符
> >= < <= == !=
(3)逻辑运算符
&& 逻辑与:两侧同时为真,结果为真。短路与,左侧是假,右侧被忽略。
|| 逻辑或:只要有一侧为真,结果为真。短路或,左侧是真,右侧被忽略。
! 非:非真即假,非假即真。
(4)位运算符
& 位与:两位同时为1,结果为1。
| 位或:两位同时为0,结果是0。
^ 异或:相同是0,不同是1。跟同一个值异或两次,可以得到原值。如:1^128^128==1。
~ 求反:0变1,1变0。
>> 带符号向右移位:符号位是0,左侧补0;符号位是1,左侧补1。>>1相当于/2,<<1相当于*2
>>> 不带符号向右移位:左侧补0。
<< 向左移位:右侧补0。
(5)三项运算
a?b:c->若a是真,则执行b;若a是假,则执行c。
(6)转型运算
类型强行转换->如:(int)
(7)赋值运算
int a=3+4;
还可以和算术运算符一起使用:+=、-=、*=、/=(这些会自动转型,如:byte a=2;a+=1;相当于a=(byte)(a+1))
- ②使用三项运算求三个数的最大值
二、变量和方法
-
定义在局部代码块中的变量,局部变量必须手动初始化(第一次赋值,分配内存空间并完成赋值),否则不能使用。
作用域(作用范围):只在定义的大括号内有效,执行完毕在内存中清理掉,在作用域内不能重复定义。
-
定义在类中的变量
-
命名的代码块:由返回值类型、方法名、方法体组成,创建断点后进入debug界面按F11可以进行分行调试。
参数:f(int x){x++;}
返回值:
如果有返回值,就需要定义返回值类型;如:int f(){return x;}
如果没有返回值,void就表示没有返回值。如:void f(){}
三、流程控制语句
-
(1)if-else if-else
(2)switch case default:只能判断byte,short,char,int,enum。
当满足一个case,就从这个case开始无条件执行所有case直到结束,或者遇到break结束。
(3)for
(4)while
(5)do while
-
检查用户输入的整数:是正数,返回1;是负数,返回-1;是0,返回0。
(公式:个人所得税=(工资-3500)*税率-速算扣除数),扣税规律如下:
<1500 0 0
1500 3% 0
4500 10% 105
9000 20% 555
35000 25% 1005
55000 30% 2755
80000 35% 5505
>80000 45% 13505
(将分数除以10,用switch判断输入的分数等于0-10来判断等级)
A [90,100]
B [80,90)
C [60,80)
D [40,60)
E [0,40)