Java基础语法(六)运算符
想象一下,当你听到这个名词后会联想起什么。
加 +、减 —、乘 *、除 ÷……
我估计,有80%的人都会在脑海中浮现出这些符号。因为太熟悉,又跟生活息息相关,所以我们终其一生都要和这些符号打交道。
在Java语句中,也包含了这样的符号,但又不仅限于这几个符号。具体分为算术运算符、关系运算符、逻辑运算符、赋值运算符、位运算符、三目运算符。
一、算术运算符
顾名思义,它用于数学表达式中,对常量和变量进行加、减、乘、除、取余、自增一/自减一的相关操作。
符号 | 定义(描述) |
---|
+ | 求和 | - | 相减 | * | 乘法 | % | 求余数(取模) | ++ | 自增1 | - - | 自减1 | / | 商(除法) |
由于其中的++和- -这两个运算符,相比其他有点复杂,因此我们暂且将其放到一边,从容易的开始讲起。
下面咱们一起来看几个例子:
定义一个int类型到底变a=4; 定义一个int类型的变量b=5; 那么,a+b=9; a-b=-1; a*b=20; a/b=0(4/5等于0.75,但这里只取整数,所以等于0); a%b=4(4/5的余数是4 )
由于这里定义的变量是int类型,所以得到的结果都是整数,没有小数,如果你非得要得到一个带小数点的结果,那就请先定义一个double类型的变量。🎃
这一点像不像你脑子不转弯的nan朋友?都猜不到女生心里的想法,必须说一步做一步。🎃🎃🎃🎃🎃
通过上面的例子,相信聪明的你对大部分算术运算符的用法已经了解,但由于“+”符号不是第一次出现,所以我们在此把它的用法大致总结为以下3种:
第一、加法; 例:3+4
第二、正号; 例:+6
第三、字符串连接符。 例: “giao”+‘a’+1
?🎉🧨🎇🎆
至此,算术运算符还剩下两个:++和- -,相比其他有一丢丢复杂,且听我娓娓道来。
老规矩,首先看几个例子:
😤:【运气中……(准备打死作者)】 😭:【救命呀,看不懂!】 😨:【这写的啥玩意?】 😵:【晕死】 🤬:【%……&¥#@()what the fu**】
【哎哎,请各位小伙伴文明讨论,不要骂街。】👸(作者)
难道你们没法发现这几张图有个特别明显的规律吗?
没发现的,请把眼睛贴在屏幕上仔细看10遍
在这几个例子中,无论++和- - 在变量前还是后,得到的结果都一样。
由此我们得出第一条使用规则:当单独使用时,自增1(++)和自减1(- -),在变量前或后,得到的结果是一样的。
怎么感觉我好像在说废话
😤😭😨😵🤬:【哦,然后呢?就这样?比其他符号复杂在哪里?】
👸:【++和- -的使用规则当然不是只有这样,请你们几个闭上嘴,好好听讲。】
第二条使用规则:当++和- -参与运算时,若++(- -)在变量前,则先进性自加1运算,然后再进行赋值操作;若++(- -)在变量后,则先赋值,再对变量中保存的值进行自加1运算。
😤😭😨😵🤬:【……】
是不是感觉每个字都认识,但连一起不知道他在讲什么?
没关系,我们还是通过栗子君来详细说明:
🌰 解析 定义一个int类型变量a=100; 定义一个int类型变量b=++a; 请输出变量a和变量b的值 a=101 b=101
若++(- -)在变量前,则先进性自加1运算,然后再进行赋值操作;
++符号在变量a之前出现,所以先对a进行自加1运算,这个时候a=101,然后再进行赋值操作,也就是把101赋值给b,所以在这道题里,a和b的值都是101。
👸:【阿辣嗖?】明白? 😤😭😨😵🤬:【al get seum ni da】鞠躬
那么我们接着看第二条使用规则的后半段,还是通过实例演示让大家能直观的去理解。
🌰 解析 定义一个int类型变量a=100; 定义一个int类型变量b=a++; 请输出变量a和变量b的值 a=101 b=100
若++(- -)在变量后,则先赋值,再对变量中保存的值进行自加1运算。
这里的++符号在a之后出现,根据规则后半段,先把变量a(100)赋值给变量b,这时b=100,然后对变量a进行自加1运算,即得到a=101。
如果你是在记不住谁在前怎么样,谁在后又怎么样,那就记住一点Java的运算顺序是从左往后。
也就是如果题目里出现b=a++,等号后面是变量a,那就先赋值,再做自加1运算。
如果题目里出现的是b=++a,等号后面是++,那就先做自加1运算,再赋值给b。
这里插一句,在Java里运算符的运算顺序是有优先级别,除了我们刚才提到的“从左往后”,级别最高的是()小括号符号,也就是当他出现时,一定是小括号里面的先运算,然后再其他,就好像小学数学里的加减乘除,先乘除后加减是一样的道理。
当然,Java的运算符优先级是有一个顺序的,后面会讲到,在这儿,为了防止大家脑子磨浆糊,请先记住这两个就好。
到此,算术运算符我们就全说完了,下面做几个题来检验一下自己的学习成果吧。
第一题: 第二题:
😤😭😨😵🤬:【&……%¥(#@】
👸:好好想想再暴躁嘛,很简单的老娘就是要虐死你们几个渣渣
下面公布答案: 第一题 解析: a=100; b=++a;a先自加1 再赋值,a=101,b=101 c= - -a;a先自减1 再赋值,a=100,c=100 d=a++;先赋值,a再自加1,d=100, a=101 e=a- -;先赋值,a再自减1,e=101,a=100 f=a- -; 先赋值, a再自减1,f=100,a=99 g=a- -; 先赋值,a再自减1,g=99,a=98 h=a; h=98=a
👸:【阿辣嗖?】明白? 😤😭😨😵🤬:【al get seum ni da】鞠躬
第二题:
😤😭😨😵🤬:【👼👼👼👼👼👼👼】 👸:【😎】
解析一下:
int x=4; int y=(x++)+(++x)+(x*10);
这里的(x++)++在变量后,先赋值再运算。所以先把x用掉,然后再自加1,所以这时int y=(4)+(++x)+(x*10),这时,由于自加1后x=5;
所以(++x)就等于6,;
(x 乘以10)等于6*10.
int y=(4)+(6)+(6*10)=70
x=6
👸:【阿辣嗖?】明白? 😤😭😨😵🤬:【…………】躺倒一片
|