前言
上一篇我们讲了变量和数据类型,那么紧接着我们来聊一聊java基础之运算符,这一篇呢,内容会比之前多一些,所以拆成两篇文章给大家分别去讲,主要目的也是觉得一篇文章太长了,怕自己忽略了很多细节,但是拆分后细节会变明显些,所以也是希望兄弟们能够看的仔细,实实在在的希望对兄弟们能学点东西,不过也别担心,我的每一步都会有代码演示,就为了兄弟们看的清楚明白,还是那句话,兄弟们动起手来,我们一起在java世界里历险吧,废话不多说,咱们往下看!!!
一.介绍
在java中我们要进行大量的运算,java中也为我们提供了大量的运算符,我们常用的运算符有那些呢,下面我们来一一的介绍一下。
运算符用于执行程序代码运算,会针对一个以上操作数项目来进行运算。例如:2+3,其操作数是2和3,而运算符则是“+”。运算符大致可以分为5种类型:算术运算符、条件运算符、关系运算符、赋值运算符和逻辑运算符。
二.知识点介绍
1、运算符概念
2、算术运算符
3、赋值运算符
4、比较运算符
5、逻辑运算符 (下一篇文章有讲)
6、三元运算符(下一篇文章有讲)
7、运算符优先级(下一篇文章有讲)
三.知识详解
1、运算符概念
运算符是用来计算数据的指令。数据可以是常量,也可以是变量。被运算符操作的数成为操作数。
例如:
int x = 3;
int y = 4;
int z = x + y;//磊哥java历险记 @51博客
2、算数运算符
将操作数参与数学计算(通常为数学计算)
运算符
运算规则
范例
结果
+
正号
+3
3
+
加
2+3
5
+
连接字符串
“中”+“国”
“中国”
-
负号
int a=3;-a
-3
-
减
3-1
2
*
乘
2*3
6
/
除
5/2
2
%
取模(余数)
5%2
1
++
自增
int a=1;a++/++a
2
--
自减
int b=3;a--/--a
2
注意:
(1)加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
代码演示:
public class Main{
public static void main(String[] args) {
String a = "磊哥java历险记";
String b = "@51博客";
//两个常量相加
System.out.println(a + b);
}
}
(2)除法“/”当两边为整数时,取整数部分,舍余数。当两边为浮点型时,按正常规则相除。
代码演示:(整数)
public class Main{
private static String name = "磊哥java历险记 @51博客";
public static void main(String[] args) {
int a = 5;
int b = 2;
//除法
System.out.println(a / b);
System.out.println(name);
}
}
代码演示(浮点型,除法):
public class Main{
private static String name = "磊哥java历险记 @51博客";
public static void main(String[] args) {
double a = 0.5;
double b = 0.2;
//除法----浮点型
System.out.println(a / b);
System.out.println(name);
}
}
(3)“%”为整除取余符号,小数取余没有意义。取余结果的符号与被取余数的符号相同。得到的是两个相除数据的余数。用处: 判断两个数据是否除。
代码演示:
public class Main{
private static String name = "磊哥java历险记 @51博客";
public static void main(String[] args) {
int a = 9;
int b = 2;
int c = 3;
//取余----
System.out.println(a % b);
System.out.println(a % c);
System.out.println(name);
}
}
(4)整数做被除数,0不能做除数,否则报错。
代码演示:
(5)小数做除数,整除0结果为Infinity(无限大),对0取模结果为NaN
代码演示:
public class Main{
private static String name = "磊哥java历险记 @51博客";
public static void main(String[] args) {
double a = 5.0;
int b = 0;
//小数做除数
System.out.println(a / b);
//对0取模
System.out.println(a % b);
System.out.println("===================================");
System.out.println(name);
}
}
2.1自增与自减
单独使用:前置与后置效果相同,均为直接+1或-1
代码演示:
public class Main{
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args){
/* 单独使用:
前置与后置效果相同,均为直接+1或-1
++:自增(自身加1)
--:自减(自身减1)
*/
int c = 10;
int d = 20;
//c++;
//d--;
++c;
--d;
System.out.println("c = " + c);//c = 11
System.out.println("d = " + d);//d = 19
System.out.println("===================================");
System.out.println(name);
}
}
混合使用:
自增(++):将变量的值加1,分前缀式(如++i)和后缀式(如i++)。前缀式是先加1再使用;后缀式是先使用再加1。
自减(--):将变量的值减1,分前缀式(如--i)和后缀式(如i--)。前缀式是先减1再使用;后缀式是先使用再减1。
代码演示:
public class Main{
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args){
/* 与其他运算混合使用:
++或- -为前置时,先+1或-1,再使用值。
++或- -为后置时,先使用值再+1或-1。
*/
int e = 15;
int f = 20;
//正常输出
System.out.println("=================正常输出==================");
System.out.println(e);//15
System.out.println(f);//20
System.out.println("=================先计算==================");
//后置,先计算完成
System.out.println(e++);//15
System.out.println(f--);//20
//计算完成后,才会加1或者减1
System.out.println("=================计算后==================");
System.out.println(e);//16
System.out.println(f);//19
System.out.println(name);
}
}
自增与自减运算符规律:
(1)可以用于整数类型byte、short、int、long,浮点类型float、double,以及字符串类型char。
(2)在Java5.0及以上版本中,它们可以用于基本类型对应的包装器类Byte、Short、Integer、Long、Float、Double、Character。
(3)它们的运算结果的类型与被运算的变量的类型相同。
代码演示:
代码总结:
package com.Test;
/*
磊哥java历险记 @51博客
算数运算符:
+,-,*:相当于数学+,-*
+:做为字符串连接符
/:两个整数相除,结果是整数
%:两个整数取模(余数),结果是整数
++:自增(自身加1)
--:自减(自身减1)
*/
public class Main{
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args){
//两个常量相加
System.out.println(3 + 5);//8
//变量加减乘除模
int a = 20;
int b = 7;
System.out.println(a + b);//27
System.out.println(a - b);//13
System.out.println(a * b);//140
System.out.println(a / b);//2
System.out.println(a % b);//6
//+:做为字符串连接符
System.out.println("中"+"国");//中国
/*
单独使用:
前置与后置效果相同,均为直接+1或-1
*/
//++:自增(自身加1)
//--:自减(自身减1)
int c = 10;
int d = 20;
//c++;
//d--;
++c;
--d;
System.out.println("c = " + c);//c = 11
System.out.println("d = " + d);//d = 19
System.out.println("===================================");
System.out.println(name);
//1.加法运算符在连接字符串时要注意,只有直接与字符串相加才会转成字符串。
int e = 15;
int f = 20;
System.out.println("e + f = " + e + f);//e + f = 1520
System.out.println("e + f = " + (e + f));//e + f = 35
System.out.println(e + f + " = e + f");//35 = e + f
//2.除法“/”当两边为整数时,取整数部分,舍余数。当两边有浮点型时,按正常规则相除。
System.out.println(5.0 / 2);//2.5
//3.“%”为整除取余符号,小数取余没有意义。取余结果的符号与被取余数(符号左边的数)的符号相同。
System.out.println(5.1 % 2);//1.0999999999999996
System.out.println(5 % 2);//1
System.out.println(-5 % 2);//-1
System.out.println(5 % -2);//1
System.out.println(-5 % -2);//-1
//4.整数做被除数,0不能做除数,否则报错。
//System.out.println(5 / 0);//ArithmeticException: / by zero
//5.小数做被除数,整除0结果为Infinity(无穷),对0取模结果为NaN(not number 无效数字)
System.out.println(5.0 / 0);//Infinity
System.out.println(5.0 % 0);//NaN
System.out.println("===================================");
System.out.println(name);
/*
与其他运算混合使用:
++或- -为前置时,先+1或-1,再使用值。
++或- -为后置时,先使用值再+1或-1。
*/
System.out.println(e);//15
System.out.println(f);//20
System.out.println(e++);//15
System.out.println(f--);//20
System.out.println(e);//16
System.out.println(f);//19
System.out.println("===================================");
System.out.println(name);
int i1 = 100;
int i2 = i1++ + 200;
System.out.println(i1);//101
System.out.println(i2);//300
int i3 = 100;
int i4 = ++i3 + 200;
System.out.println(i3);//101
System.out.println(i4);//301
System.out.println("===================================");
System.out.println(name);
}
}
3、赋值运算符
为变量赋值的运算符
运算符
运算规则
范例
结果
=
赋值
int a=2
2
+=
加后赋值
int a=2,a+=2
4
-=
减后赋值
int a=2,a-=2
0
*=
乘后赋值
int a=2,a*=2
4
/=
整除后赋值
int a=2,a/=2
1
%=
取模后赋值
int a=2,a%=2
0
注意:
诸如 += 这样形式的赋值运算符,会将结果自动强转成等号左边的数据类型。
代码演示:
package com.Test;
/*
赋值运算符:
=,+=,-=,*=,/=,%=
+=,-=,*=,/=,%=运算符的运算规则:
先将运算符两边进行+,-,*,/,%运算,在把结果赋值给左边的变量
+=,-=,*=,/=,%=注意事项:运算符左边必须是一个变量
+=,-=,*=,/=,%=特点:隐含一个强制类型转换
*/
public class Main{
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args){
int a = 10;
//相当于 a = a + 20;
a += 20;
System.out.println("a = " + a);
System.out.println("==========="+name +"===========");
//5 += 6;//错误: 意外的类型,这里5的位置需要一个变量
byte b = 10;
//b = b + 100;// 错误: 可能损失精度
//b = (byte)(b + 100);
//+=隐含了一个强制类型转换 相当于b = (byte)(b + 100);
b += 100;
System.out.println("b = " + b);
}
}
4、比较运算符
又叫关系运算符,即判断两个操作数的大小关系及是否相等关系,比较运算符的返回一定为布尔值。
运算符
运算规则
范例
结果
==
相等于
4==3
false
!=
不等于
4!=3
true
<
小于
4<3
false
>
大于
4>3
true
<=
小于等于
4<=3
false
>=
大于等于
4>=3
true
关系运算符包括:==,!=,>,<,>=,<=
关系运算符的结果都是boolean型,也就是要么是true,要么是false。
注意事项
n 关系运算符“==”不能误写成“=” 。
代码演示:
package com.Test;
public class Main {
private final static String name = "磊哥java历险记 @51博客";
public static void main(String[] args) {
int a = 10;
int b = 20;
int c = 10;
System.out.println(a == b);
System.out.println(a == c);
System.out.println("==========="+name +"===========");
System.out.println(a != b);
System.out.println(a != c);
System.out.println("======================");
System.out.println(a > b);
System.out.println(a > c);
System.out.println("======================");
System.out.println(a >= b);
System.out.println(a >= c);
System.out.println("======================");
int x = 3;
int y = 4;
// System.out.println(x == y);
// System.out.println(x = y);// 把y赋值给x,把x的值输出
boolean bb = (x == y);
// 报错
// boolean cc = (x = y);
int cc = (x = y);
System.out.println(cc);
}
}
结语:
本篇内容还未讲完,因为内容太多了,我想给兄弟们讲全一点,但是又怕文章太长了,好多细节兄弟们注意不到,所以下一篇还会把剩下的运算符更新完的,不会烂尾。
今天的内容也确实比较多,我把每一步的代码和演示都贴在了文章里,为的就是让初学的兄弟们不迷糊,我也从这个阶段走过来过,完全能体会兄弟们的不容易,所以我宁愿麻烦一些也要让每一位初学者最起码看的明白,这样也不枉我费这么大功夫,兄弟们,还是那句话,动起手来,切勿复制粘贴,让学习变得值得!加油!
【本文来源:香港将军澳机房 http://www.558idc.com/hk.html 欢迎留下您的宝贵建议】