标签:java的运算符
1.运算:对常量和变量进行操作的过程称为运算。
2.运算符:对常量和变量进行操作的符号称为运算符。
3.操作数:参与运算的数据称为操作数。
4.表达式:用运算符把常量或者变量连接起来的具有java语法的语句。不同运算符连接的语句体现的是不同类型的表达式。
例如:
int a = 3 + 4;
这是做了一个加法运算,+就是运算符,是算术运算符。3,4就是参与运算的操作数。3+4整体就是一个算术表达式。
5.算术运算符

+,-,*,/都是比较简单的操作。
+的作用:加法,整数,字符串连接符
除法的时候要注意:1)整数相除,只能得到整数2)要想到小数可以*1.0,将其转成double型
/**
* 运算符:就是对常量和变量进行操作的符号。
* 分类:算术运算符,赋值运算符,比较运算符,逻辑运算符,位运算符,三目运算符
* 算术运算符:+,-,*,/,%,++,--
* 注意事项:
* 整数相除只能得到整数,如果要想得到小数,那么只需要将其中一个整数变为double型
* 整数相除,/获取的是除法操作的商,%获取的是除法操作的商。
*/
public class OperatorDemo {
public static void main(String[] args){
//定义变量
int x = 3;//把3赋值给into类型的变量x
int y = 4;
System.out.println(x+y);//加法
System.out.println(x-y);//减法
System.out.println(x*y);//乘法
System.out.println(x/y);//除法
System.out.println(x%y);//取模
}
}
7
-1
12
0
3/**
* ++,--运算符的使用
* 作用:就是对变量进行自增或者自减
* 单独使用:放在操作数的前面和后面效果一行,单独的对变量的进行自增或自减
* 参与运算使用:
* 放在操作数的前面,先自增或自减,然后再参与运算
* 放在操作数的后面,先残云运算,再自增或自减
*
*/
public class OperatorDemo2 {
public static void main(String[] args){
//定义两个变量
int x = 3;
int y = 4;
//字符串的拼接
System.out.println("x="+x);//x=3
System.out.println("y="+y);//y=4
System.out.println("x="+x+",y="+y);//x=3,y=4
//单独使用
x++;
y--;
System.out.println("x="+x);//x=4
System.out.println("y="+y);//y=3
--x;
--y;
System.out.println("x="+x);//x=3
System.out.println("y="+y);//y=2
System.out.println("*********************");
int a = 3;
int b = 4;
int c = a++;
int d = b--;
System.out.println("a="+a);//a=4
System.out.println("b="+b);//b=3
System.out.println("c="+c);//c=3
System.out.println("d="+d);//d=4
int i = 3;
int j =4;
int l = ++i;
int k = --j;
System.out.println("i="+i);//i=4
System.out.println("j="+j);//j=3
System.out.println("l="+l);//l=4
System.out.println("k="+k);//k=3
}
}练习题:
/**
* 下面的程序看看就行,实际中谁敢这样写,就要呵呵了
*/
public class OperatorTest {
public static void main(String[] args){
int a = 10;
int b = 10;
int c = 10;
a = b++;//a=10,b=11,c=10
c = --a;//a=9,c=9,b=11
b = ++a;//a=10,b=10,c=9
a = c--;//a=9,c=8,b=10
System.out.println("a="+a+",b="+b+",c="+c);
int x = 4;
int y = (x++)+(++x) + (x*10);
//(x++)-->4 x=5
//(++x)-->6 x=6
//(x*10)-->60
System.out.println("x="+x+",y="+y);
}
}/**
* +的用法:
* 加法
* 正号
* 字符串连接符
*
*/
public class OperatorDemo3 {
public static void main(String[] args){
//加法
System.out.println(3+4);
//正号
System.out.println(+4);
//字符串连接符
System.out.println(‘a‘);
System.out.println(‘a‘+1);
System.out.println("hello"+‘a‘+1);
System.out.println(‘a‘+1+"hello");
}
}
7
4
a
98
helloa1
98hello6. 赋值运算符
基本的赋值运算符:=
扩展的赋值运算符:+=,-=,*=,/=,%=
/**
* 赋值运算符:
* 基本的赋值运算符:=
* 扩展的赋值运算符:+=,-+,*=,/=,%=
* +=把左边和右边的做加法,然后赋值给左边的变量
*/
public class OperatorDemo {
public static void main(String[] args){
int x = 10;
System.out.println("x="+x);
int a,b;
a=b=10;
System.out.println(a);
System.out.println(b);
int y = 10;
y += 20;//y=y+20
System.out.println(y);
}
}7.比较运算符
8.逻辑运算符

逻辑运算符用于连接布尔型表达式,在java中不可以写成3<x<6,应该写成x>3&&x<6。
/**
* 逻辑运算符
* &,|,^,!
* &&,||
* 特点:
* 逻辑运算符一般用于连接Boolean类型的表达式或者值。
* 表达式:就是用运算符把常量或者变量连接起来符合java语法的式子。
* 算术表达式:a+b
* 比较表达式:a==b
* 结论:
* 逻辑与:& 一假则假
* 逻辑或:| 一真则真
* 逻辑异或 ^ 相同为假,不同为真
* 举例:情侣关系 男男,女女,false;男女,女男,true。
* 逻辑非:! 非false则true,非true则false
*
* &&和&的区别?
* 最终结果一样
* && 具有短路效果,左边是false,右边不执行
*/
public class OperatorDemo {
public static void main(String[] args){
int a = 3;
int b = 4;
int c = 5;
//逻辑与 &
System.out.println((a>b)&(a>c));//false
System.out.println((a>b)&(a<c));//false
System.out.println((a<b)&(a>c));//false
System.out.println((a<b)&(a<c));//true
//逻辑或 |
System.out.println((a>b)|(a>c));//false
System.out.println((a>b)|(a<c));//true
System.out.println((a<b)|(a>c));//true
System.out.println((a<b)|(a<c));//true
//逻辑异或 ^
System.out.println((a>b)^(a>c));//false
System.out.println((a>b)^(a<c));//true
System.out.println((a<b)^(a>c));//true
System.out.println((a<b)^(a<c));//false
//逻辑非
System.out.println(!(a>b));//true
System.out.println((a>b)&& (a>c));//false
System.out.println((a>b)&& (a<c));//false
System.out.println((a<b)&& (a>c));//false
System.out.println((a<b)&& (a<c));//true
}
}9.位运算符

/**
* 位运算符
* &,|,^,~
* <<,>>,>>>
* 注意:
* 要做位运算,首先要将数据转换为二进制。
*/
public class OperatorDemo {
public static void main(String[] args){
int a = 3;
int b = 4;
/**
* 分析:因为是位运算,所以我们必须将数据换算成二进制。
* 3的二进制是:11
* 00000000 00000000 00000000 00000011
* 4的二进制是:100
* 00000000 00000000 00000000 00000100
* &:有0则0
* 00000000 00000000 00000000 00000000
* 结果是0
* |:有1则1
* 00000000 00000000 00000000 00000111
* 结果是7
* ^:相同为0,不同为1
* 00000000 00000000 00000000 00000111
* 结果是7
* ~按位取反,0变1,1变0
* 11111111 11111111 11111111 11111100 -->补码
* 11111111 11111111 11111111 11111011 -->反码
* 10000000 00000000 00000000 00000100 -->原码
*/
System.out.println(a & b);
System.out.println(a | b);
System.out.println(a ^ b);
System.out.println(~a);
/*
* ^的特点:一个数据对另一个数据位异或两次,该数本身不变
* 应用:用来进行数据的加密
*/
int x = 10;
int y = 20 ;
System.out.println(x ^ y ^ y);//10
System.out.println(x ^ y ^ x);//20
}
}/**
* 实现两个整数变量的交换
*
*/
public class OperatorDemo {
public static void main(String[] args){
int a = 3;
int b = 4;
System.out.println("a="+a+",b="+b);
//实现一,使用第三变量
int c = a;
a = b;
b = c;
System.out.println("a="+a+",b="+b);
//实现二,使用位异或实现
//左边:a,b,a
//右边:a,b
a = a ^ b;
b = a ^ b;
a = a ^ b;
System.out.println("a="+a+",b="+b);
//实现三,用变量相加的方法
a = a + b;
b = a - b;
a = a - b;
System.out.println("a="+a+",b="+b);
}
}/**
* << 左移 左边最高位丢弃,右边补齐0
* >> 右移 最高位是0,左边补齐0;最高位为1,左边补齐1
* >>> 无符号右移 无论最高位是0还是1,左边补齐0
*
*/
public class OperatorDemo {
public static void main(String[] args){
/**
* 分析:
* 计算出3的二进制:11
* 00000000 00000000 00000000 00000011
* [00]00000000 00000000 00000000 00001100
* --> 00000000 00000000 00000000 00001100
* 结论:把<<左边的数据*2的移动次幂
*/
System.out.println(3 << 2);//12
//把>>右边的数据除以2的移动次幂
System.out.println(24 >> 2);//24 / 2(2) =6
System.out.println(24 >>> 2);
System.out.println(-24 >> 2);//-6
System.out.println(-24 >>> 2);//1073741818
}
}10.三目运算符
(关系表达式)?表达式1:表达式2;
如果关系表达式的值是true,那么运算后的结果是表达式1,如果关系表达式的值是false,那么运算后的结果是表达式2。
/**
* 单目运算符呢:~3
* 双目运算符:3 + 4
* 三目运算符
* 格式:布尔表达式?表达式1:表达式2;
* 执行流程:
* 根据布尔表达式的计算返回一个true或者false,
如果是true,就把表达式1作为结果,如果是false,就把表达式2作为结果。
*
*
*/
public class OperatorDemo {
public static void main(String[] args){
int x = 100;
int y = 200;
int z = x > y ? x : y;
System.out.println(z);
}
}本文出自 “11831428” 博客,请务必保留此出处http://11841428.blog.51cto.com/11831428/1853116
标签:java的运算符
原文地址:http://11841428.blog.51cto.com/11831428/1853116