Selenium Web Driver自动化测试(java版)系列上半部分(3) - java运算符

上次介绍了变量和类型转换,但都是单个的变量,没什么价值,这篇我们就让变量运算起来。变量参与运算,这就需要运算符。Java里面有三种运算符,最基本的运算符和数学符号一致,加减乘除,还有一个用百分号表示求余数的,又叫做取模。这五种方式就跟算算数一样,所以并称为算术运算符。

+号和-号不说了,*号代表乘法,注意乘号不是x,你要是写x系统就默认你创建了一个叫x的变量,就错了。"/"代表求商,"%"是求余,又叫取模。有时候会看到取模这俩字,指的就是求余数。创建一个叫Operators.java的文件,然后复制下面的内容:

声明int a = 5; int b = 6; int c; c = a + b; 然后打印c。猜的到结果吧?很简单,得11。这是咱们第一次让变量之间交流,那它的运行原理是什么样呢?看我画张图。你或许注意到我一直在讲内存里是怎么工作的,不要嫌烦,现在看起来很简单,但我发现很多朋友如果不深刻理解这块儿,以后讲复杂的过程理解起来就有点吃力。咱们不怕慢,一定把基础搞好。而且测试员本身就要测一切,包括内存,大家一定别忽视。

内存自动开辟了两个空间分别存a和b的值,然后又开辟了一个空间准备存c。c一开始是空的,a和b的值现在是十进制的数,但运算的时候其实是分别转换成二进制码后相加,最后把结果存到c这个空间里。这就是a+b的原理。那如果我算a*b呢?如果a%b呢?一样的道理:

算出来c等于30。简单说说,第一句话int a = 5, b = 6;,声明同一类型变量的时候可以写在同一行,中间用逗号隔开。而且只用在第一个前面加上类型就可以了。第二句话int c = a*b;,可以边声明新变量边用一个计算结果赋值。这些都是经验,没事多练多编译,你会发现很多简便的写法。

当然,有时候不止两个数进行运算,好几个数运算的时候可能有加减有乘除,比如a+b*c/d-e.这种情况下会怎么样?先做哪步?答案跟咱们小学学数学时一样 – 先乘除后加减。那如果是同级呢?比如这里乘和除是同级的,答案是同级从左到右依次计算。我们小学数学里可以加括号,对吧?那我们加个括号呢?优先级又变了。还是跟数学一样,括号优先。先算a+b。

计算结果是-25,这就是简单的四则运算,你也可以试试求余数。现在我把c = a + b那个例子改一下,写成int a = 5; int b = 6; a = a + b; 这里面没有c了:

打印一下,a变成了11。这种情况和上面的a+b不一样,这次是最后是把11再赋回给a,这样a就存11了,b还是6。内存图就变成这个样子:

假如我们不停地执行a=a+b,第二次a等于17,b还是6。再执行一遍:a等于23,b还是6。执行到这里我们是不是发现,如果我们一直执行a=a+b,a会一直增加,而增加的值就是b的值?b是不是感觉好像一个固定的增长幅度?

所以,像a=a+b这种情况有一个更简单的写法:a+=b。左边是最终要改变的值,右边是幅度。比如咱们这个例子中a从5变到11,b是5变到11的幅度,上面的程序可以简写成:

这就是咱们的算术运算符的第一个补充。当然,有+=,就有-=,*=,/=。大家没事可以自己去试试。再举个例子,这次我把b都去掉了:

这里面的a值最后得6,当然,你也可以写成a += 1。但因为幅度是1,所以这种情况还有一种福利写法:a++和++a。++默认就是+1。注意,幅度一定是1,否则不能这么写。你要是a = a + 2,只能老老实实写a += 2。看看下面的a++和++a举例,它们都打印出6:

那a++和++a有区别么?我还是用例子解释,先说++a,我再把b请回来:

打印结果b等于6。而a++呢?

看,b的值这次等于5了。为什么明明单独写a++和++a结果一样,但赋给b就不一样了呢?原因在于操作的顺序不同!b = ++a的内存工作原理是先加后赋值。先让a自增1,然后把结果赋给b,相当于这样:

而b = a++则是先把a的值赋给b,再让a自增1,顺序正好相反:

注意,只有++和--,没有别的了,"//"不是除的意思,而是注释。

这就是算术运算符的概念。第二种叫做关系运算符。关系运算符包括>,<,==,!==,>=,和<=。你会发现怎么等于号怎么是==这么写的呢?小学数学老师可没这么教过我。其实就是与变量赋值区别开。比如int a = 5,代表把5赋给a,已经用了咱小学数学用的等于号了,没办法,不能混淆,于是等于就变成了==。而等号前面加一个!就代表不等于。

关系运算符通常和第三种运算符,也就是逻辑运算符一起用。咱们一起讲。逻辑运算符包括三个关键字:与,或,非。与的意思是"同时",用&&表示;或的意思是"或者",用||表示;非的意思是"反过来",用!表示。

这三个关键字一般用在条件判断里,条件出现在这三个关键字的前后。条件判断咱们还没讲到,下篇讲。我们可以先预热一下,讲讲什么是条件。看我这里的例子:

这里if的意思是如果,括号里的就叫条件。咱们例子中需要条件判断来讲与或非,我就先给大家演示一下:

我现在程序里写if(a == b && a < 6),翻译过来就是如果a等于b并且a<6,打印出我是条件1;if(a > b || b ==5),翻译过来就是如果a大于b或者b等于5,打印出我是条件2;if(!(a>=b)),翻译过来就是a>=b反过来,那反过来就是a<b对不对?如果满足打印我是条件3。很明显,只有前两个条件满足,所以只打印前两句话。大家先好好看看这几个例子,下篇文章我还会详细讲条件判断。

这篇文章的源代码在Operators中。再留几个练习题吧:

1. 我们发现这节课讲的几个例子里的变量都是整型,那如果是两个字符相加呢?或者不一样类型的数相加呢?回想一下上节课讲的转换过程,然后计算下面几个算式:
1)20.8+5;
2)10+6%5-10;
3)(10+6.8)*3/6(要求结果四舍五入);
4)'A'+'C';

2. 刚刚我们只罗列了算数运算符的优先级,如果再算上关系运算符和逻辑运算符呢?请自己上网查找并总结。下篇文章我们讲java的流控机制。

本篇知识点及注意事项:
1. 变量之间可以进行四则运算;
2. a=a+b可以写成a+=b,同理也有-=,=,/=;
3. a=a+1可以写成a+=1,也可以写成a++或++a;
4. 只有++或--代表自增1或自减1,没有自乘1这么一说,
*是错的。而且也没有自除1,//代表注释。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 201,681评论 5 474
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,710评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 148,623评论 0 334
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,202评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,232评论 5 363
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,368评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,795评论 3 393
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,461评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,647评论 1 295
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,476评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,525评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,226评论 3 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,785评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,857评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,090评论 1 258
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,647评论 2 348
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,215评论 2 341

推荐阅读更多精彩内容