package day03;
//运算符演示
public class OperDemo {
public static void main(String[] args) {
/*
* 6.条件/三目运算符:
* 1)语法:
* boolean ? 数1 : 数2
* 2)执行过程:
* 计算boolean的值:
* 若为true,则整个表达式的结果为数1
* 若为false,则整个表达式的结果为数2
*/
/*
//求两个数的最大值
int a=55,b=8;
int max = a>b?a:b;
System.out.println("max="+max);
*/
/*
* 5.字符串连接运算:
* 1)+:
* 1.1)若两边都是数字,则做加法运算
* 1.2)只要有一边为字符串,则做字符串连接
*/
/*
System.out.println(2+2); //4
System.out.println('2'+'2'); //100
System.out.println("2"+"2"); //22
System.out.println(100+200+""+300); //"300300"
System.out.println(100+""+200+300); //"100200300"
System.out.println(100+200+300+""); //"600"
System.out.println(""+100+200+300); //"100200300"
int age = 37;
System.out.println("age="); //age=,字符串原样输出
System.out.println(age); //37
System.out.println("age="+age); //age=37
System.out.println("我的年龄是:"+age);
System.out.println("我今年"+age+"岁了");
*/
/*
* 4.赋值运算符
* 1)简单赋值运算符:=
* 2)扩展赋值运算符:+=,-=,*=,/=,%=
* 建议使用
*/
/*
//小面试题
short s1 = 5;
//s1 = s1 + 10; //编译错误,需强制类型转换
s1 += 10; //扩展赋值系统自动帮你做强制类型转换
System.out.println(s1);
*/
/*
int a = 5;
a += 10; //相当于a=a+10
a *= 2; //相当于a=a*2
System.out.println(a); //30
*/
/*
* 3.逻辑运算符:
* 1)&&:短路与(并且),两边都为真则为真,见false则false
* 当第一个数为false则,发生短路(后面的不执行了)
* ||:短路或(或者),有一边为真则为真,见true则true
* 当第一个数为true则,发生短路(后面的不执行了)
* ! :逻辑非,非真则假,非假则真
* 2)逻辑运算是建立在关系运算基础之上的,
* 逻辑运算的结果也是boolean型
*/
/*
int a=5,b=10,c=5;
boolean b1 = a<b || c++>5;
System.out.println(b1); //true
System.out.println(c); //5,短路了
*/
/*
boolean b1 = a>b && c++>2;
System.out.println(b1); //false
System.out.println(c); //5,短路了
*/
/*
boolean b1 = !(a>b);
System.out.println(b1); //!false=true
System.out.println(!(b>c)); //!true=false
*/
/*
System.out.println(a>b || b>c); //false||true=true
System.out.println(a==c || b<c); //true||false=true
System.out.println(a<c || a!=c); //false||false=false
System.out.println(a==c || b>c); //true||true=true
*/
/*
boolean b1 = a>b && b>c;
System.out.println(b1); //false&&true=false
System.out.println(a==c && b<c); //true&&false=false
System.out.println(a<c && a!=c); //false&&false=false
System.out.println(a==c && b>c); //true&&true=true
*/
/*
* 2.关系运算符:
* 1)>(大于),<(小于)
* >=(大于或等于),<=(小于或等于)
* ==(等于),!=(不等于)
* 2)关系运算的结果为boolean型,
* 关系成立则为true,关系不成立则为false
*/
/*
int a=5,b=10,c=5;
boolean b1 = a>b;
System.out.println(b1); //false
System.out.println(a<c); //false
System.out.println(a<=c); //true
System.out.println(a>=c); //true
System.out.println(a==b); //false
System.out.println(a!=b); //true
*/
/*
* 1.算术运算符:+,-,*,/,%(取模),++,--
* 1)++/--:自增1/自减1,可在变量前也可在变量后
* 1.1)++/--单独使用时,在前在后无差别
* 1.2)++/--被使用时,在前在后有差别
* 1.2.1)a++的值为a的值
* 1.2.2)++a的值为a+1的值
*
*/
/*
//小面试题
int a=0;
//1)记录a++的值-----0
//2)a++即a自增1-----1
//3)将a++的值赋给a---0
a=a++;
System.out.println(a); //0
*/
/*
int a=0;
//1)记录++a的值----1
//2)++a即a自增1----1
//3)将++a的值赋给a--1
a=++a;
System.out.println(a); //1
*/
/*
int a=5,b=10;
System.out.println(a++); //5
System.out.println(a); //6
System.out.println(++b); //11
System.out.println(b); //11
*/
/*
//int a=5,b=10;
//1)记录a++的值------5
//2)a++即a自增1------6
//3)将a++的值5赋给c---5
//int c=a++;
//1)记录++b的值------11
//2)b++即b自增1------11
//3)将++b的值11赋给d--11
int d=++b;
System.out.println(a); //6
System.out.println(b); //11
System.out.println(c); //5
System.out.println(d); //11
*/
/*
int a=5,b=5;
a++; //相当于a=a+1
++b; //相当于b=b+1
System.out.println(a);
System.out.println(b);
*/
/* System.out.println(5%2);
System.out.println(8%2);
System.out.println(2%8);
System.out.println(8.654%2);
*/
}
}