六种常用的运算符
- 算术运算符
加+; 减–; 乘*; 除/; 取余%; 自增++; 自减 – – ;
public class Demo2 {
public static void main(String[] args) {
System.out.println(20+10);// + 加法运算 20+10=30
System.out.println(20-10);// - 减法运算 20-10=10
System.out.println(20*10);// * 乘法运算 20*10=200
System.out.println(20/12);// / 除法运算 20/11=1 为什么等于1呢,整型除以整型不会保留小数
System.out.println(20%12);// % 取余运算 20%12=8 除不尽余下来的数
int a = 20;
int b = 20;
System.out.println(a = a++);// ++ 自增运算 ++在变量后面 是先赋值再自增 a = a++ 就等于20
System.out.println(a = ++a);// ++ 自增运算 ++在变量前面 是先自增再赋值 a = ++a 就等于21
System.out.println(b = b--);// -- 自减运算 --在变量后面 是先赋值再自减 b = b-- 就等于20
System.out.println(b = --b);// -- 自减运算 ++在变量前面 是先自减再赋值 b = ++b 就等于19
}
}
- 赋值运算符
等于=; 加等于+=; 减等于–=; 乘等于*=; 除等于/=; 取余等于%=
public class Demo2 {
public static void main(String[] args) {
int a = 10;
a = 20; // = 将右边的值赋值给左边的变量
System.out.println(a);//a=20
int b = 10;
b += 20; // += 左右两边的值相加再赋值给左边的变量 等同于 b=b+20; b=10+20; b=30
System.out.println(b);//b=30
int c = 10;
c -= 5; // -= 左边的值减去右边的值再赋值给左边的变量 等同于 c=c-5; c=10-5; c=5
System.out.println(c);//c=5
int d = 10;
d *= 5; // *= 左边的值乘以右边的值再赋值给左边的变量 等同于 d=d*5; d=10*5; d=50
System.out.println(d);//d=50
int e = 10;
e /= 5; // /= 左边的值除以右边的值再赋值给左边的变量 等同于 e=e/5; e=10/5; e=2
System.out.println(e);//e=2
int f = 10;
f %= 4; // %= 左边的值取余右边的值再赋值给左边的变量 等同于 f=f%4; f=10%4; f=2
System.out.println(f);//f=2
}
}
- 关系运算符
关系运算符只有两个值,条件成立则为true,否则为false
大于>; 小于<; 大于等于>=; 小于等于<=; 恒等于==; 不等于!=
public class Demo2 {
public static void main(String[] args) {
System.out.println(10>20);// > 10>20? 10不大于20 所以结果为false
System.out.println(10<20);// < 10<20? 10是小于20 所以结果为true
System.out.println(10>=20);// >= 10>=20 10不大于等于20 所以结果为false
System.out.println(10<=20);// <= 10<=20 10小于等于20 所以结果为true
System.out.println(10==20);// == 10==20 10不恒等于20 所以结果为false
System.out.println(10!=20);// != 10!=20 10不等于20 所以结果为false
}
}
- 逻辑运算符
逻辑与 &&; 逻辑或 || ; 逻辑非 !;
逻辑运算符只有两个值,条件成立则为true,否则为false
public class Demo2 {
public static void main(String[] args) {
System.out.println( 10>20 && 10>5 );
// && 并且的意思 10>20并且10>5 10不大于20 一假即假 一个条件不成立,结果就为false
System.out.println( 10>8 && 10>5 );
// && 并且的意思 10>8并且10>5 10大于8并且10大于5 两个条件都成立 所以结果为true
System.out.println( 10>20 || 10>5 );
// || 或者的意思 10>20或者10>5 一真即真 两个条件有一个条件成立,结果就为true
System.out.println( 10>20 || 10>30 );
// || 或者的意思 10>20或者10>30 只有两个条件都不成立的时候,结果才为false
System.out.println(10!=20);
// ! 非,相反的意思 !一般配合=使用,10!=20,10不等于20,结果为true;
System.out.println(10!=10);
// ! 非,相反的意思 !一般配合=使用,10!=10,10不等于10,结果为false;
}
}
- 三元运算符
格式 :(条件表达式)?值1:值2;
条件表达式成立的话选择值1,否则条件不成立选择的是值2
import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
//三元运算符这里来个小游戏吧,增加点趣味性
//这里就需要用到后面的知识了,在这里先接触一下增加一下兴趣
//Scanner这里先不要急,到后面会学到的
Scanner sc = new Scanner(System.in);
int a = 6;
System.out.println("请在控制台中输入1~10之间的数");
System.out.println("看看您能不能猜中我心中想的数");
int b = sc.nextInt();
System.out.println((a==b)?"恭喜您猜对了":"不好意思猜错咯");
//a的值为6 b的值为您输入的值 如果您输入的值等于6
//那么条件表达式的值为true,就会执行:左边的,否则就会执行冒号右边的
}
}
- 位运算符
位运算需要掌握二进制,原码、反码、补码
public class Demo2 {
public static void main(String[] args) {
// & 按位与 两个同为1的时候为1
// 3&4的结果是多少?
// 3的二进制为 00000011
// 4的二进制为 00000100
// 3和4的按位与 00000000
System.out.println(3&4);//结果为0
// | 按位或 两个有一个为1的时候就为1
// 3|4的结果是多少?
// 3的二进制为 00000011
// 4的二进制为 00000100
// 3和4的按位与 00000111
System.out.println(3|4);//结果为7
// ^ 按位异或 两个不一样的时候就为1,一样的时候就为0
// 6^4的结果是多少?
// 6的二进制为 00000110
// 4的二进制为 00000100
// 6和4的按位异或 00000010
System.out.println(6^4);//结果为2
// ~ 按位取反
// ~4的结果是多少?
// 规律 ~x = -(x+1)
System.out.println(~4);//结果为-5
}
}