package base; public class Demon09 { public static void main(String[] args) { //运算符 /* Java语言支持以下运算符 1.算术运算符:+、—、*、/、%、++、-- 2.赋值运算符:= 3.关系运算符:>、<、>=、<=、==、!=、instanceof 4.逻辑运算符:&&、||、! 5.位运算符:&、|、^、~、>>、<<、>>>(了解) 6.条件运算符:?、: 7.拓展赋值运算符:+=、-=、*=、/= */ } }
package operator; public class Demo01 { public static void main(String[] args) { //二元运算符 //Ctrl+D:复制当前行到下一行 int a=10; int b=20; int c=25; int d=25; System.out.println(a+b); System.out.println(a-b); System.out.println(a*b); System.out.println(a/(double)b);//int向下取整,只保留整数部分 需要强制转换为double //注意作用范围 } }
package operator; public class Demo02 { public static void main(String[] args) { long a=123123123123123123L; int b=123; short c=10; byte d=8; System.out.println(a+b+c+d);//long System.out.println(b+c+d);//Int System.out.println(c+d);//Int 当没有long时,所有非int类型转为int类型 } }
package operator; public class Demo03 { public static void main(String[] args) { //关系运算符返回的结果:正确,错误 布尔值 //之后会跟if一起大量使用 int a =10; int b =20; int c =21; //取余,模运算 System.out.println(c%a);//c/a 21/10=2...1 System.out.println(a>b);//false System.out.println(a<b);//true System.out.println(a==b);//false System.out.println(a!=b);//true } }
package operator; public class Demo04 { public static void main(String[] args) { //自增自减运算符、初识Math类 //++,-- 自增 自减 一元运算符 int a=3; int b=a++;//执行完这行代码后,先给b赋值,在自增 //a=a+1 System.out.println(a);//4 //a=a+1 int c=++a;//执行完这行代码前,先自增,再给b赋值 System.out.println(c);//5 System.out.println(a); System.out.println(b); System.out.println(c); //幂运算 2^3 2*2*2 = 8 很多运算,我们会使用一些工具类来操作! double pow = Math.pow(2, 3);//Alt+Enter 快捷键返回值 System.out.println(pow); } }
package operator; public class Demo05 { public static void main(String[] args) { //与(and) 或(or) 非(取反) boolean a = true; boolean b = false; System.out.println("a&&b:"+(a&&b));//逻辑与运算:两个变量都为真,结果才为真 System.out.println("a||b:"+(a||b));//逻辑或运算:两个变量有一个为真,则结果为真 System.out.println("!(a&&b):"+!(a&&b));//取反运算:真为假,假为真 //短路运算 前一个为假则直接输出假 int c=5; boolean d=(c<4)&&(c++<4);//此c<4为假,则后面不执行,直接输出假 System.out.println(d); System.out.println(c); } }
package operator; public class Demo06 { public static void main(String[] args) { /* A=0011 1100 B=0000 1101 ----------------------- A&B = 0000 1100 与:0假1真 11为真 其余为假 A|B = 0011 1101 或:0假1真 00为假 其余为真 A^B = 0011 0001 异或:相同为0 不同为1 ~B = 1111 0010 取反:与上相反 位移运算符:箭头朝向即为移向 2*8 = 16 2*2*2*2 <<左移 *2 >>右移 /2 二进制:逢二进一 0000 0000 0 0000 0001 1 0000 0010 2 0000 0011 3 0000 0100 4 0000 1000 8 0001 0000 16 */ System.out.println(2<<3); } }
package operator; public class Demo07 { public static void main(String[] args) { //扩展赋值运算符 += —= *= /= int a=10; int b=20; a +=b;//a=a+b a -=b;//a=a-b System.out.println(a); //字符串连接符 + , String 面试题 System.out.println(a+b); System.out.println(""+a+b);//1020 字符串在前则输出字符串 System.out.println(a+b+"");//30 字符串在后则前依旧运算 } }
package operator; //三元运算符 public class Demo08 { public static void main(String[] args) { //x? y: z //如果x==true,则结果为y,否则结果为z int score = 80; String type = score <60?"不及格":"及格";//必须掌握 //if也可以做 上面方法更精简 System.out.println(type); } }