1.运算符
 *         对常量和变量进行操作的符号称作运算符
 * 2.表达式
 *         用运算符把常量或者变量连接起来的符合java语法的式子就可以称为表达式。不同运算符连接的式子体现的是不同类型的表达式。
 *         定义两个int类型的变量a,b,做法(a+b)
 *         注意:单个变量或者常量也可以是称作表达式,如变量a,true,10,2.50等等。(可以理解为0+变量或者常量=变量或者常量)
 * 3.常用运算符
 *         算术运算符
 *         赋值运算符
 *         关系运算符
 *         三元运算符
 *         逻辑运算符
 *             
 *             ①:算术运算符:+ ,— ,* ,/ (加减乘除)的基本使用,注意整数相除只能得到整数
 *             ②:%求余运算符。得到的是两个相除数据的余数
 *             ③:/除法运算符。若是两个整数相除得到的是两个相除数据的商。
 *                         简单来讲:一个是除法运算符,一个是求余运算符,但是前者有特殊情况,即在两个整数相除时,是相当于求商运算符。后者无论是否相除数据均为整数,都将求余,若有浮点数,则求余结果也为浮点数。

例子:

System.out.println(3/4);//求商为0
		System.out.println(3%4);//求余为3
		System.out.println(3%4.0);//求余为3.0

 *                         求余概念:就是当商出来时,所余下的数,有点抽象,
 *                                  例子说明。15%4,即15-3*4=3,其中第一个3为商,(因为4*4=16不符合),第二个3为余。
 *                                          25%6,即25-4*6=1,其中4为商,(因为5*6=30不符合),1就是余数!        
 *             ④:+运算符:
 *                 a:不仅可以数值类型进行相加,字符类型也可以进行相加,其本质是拿字符在计算机中存储的数据值来参与运算的。
 *                       'A' 65      
 *                       'B' 66    
 *                       'a' 97
 *                       '0' 48    
 *                     从这些就可以往后以此类推了
 *                 b:字符串参与加法运算,本质就是字符串的拼接。
 * 
 *     
 *  4.常见例子:
 *  / 和%分别是求商和求余(一般数据均整数)
 *  求百位:189/100
 *  求十位:189/10=18,18%10=8
 *  求个位:189%10=9
 *  以此类推四位、五位数....
 *  
 *  5.++、--运算符:自增自减,用于对变量进行加1,或者减1 的操作
 *    ++,--既可以用在变量的前面,也可以用在变量的后面,但是有时候效果是不一样的。
 *        注意:单独使用的时候,++,--放在变量的前面或者后面结果一样。    
 *         本质: 先运算再自增:++在后,先使用之前的变量值,而后这个变量再+1
 *                先自增再运算:++再前,将之前的变量值+1,而后再去使用。
 *                例子:

int a=10;
		System.out.println("a:"+a);
		
		//++
		a++;
		System.out.println("a:"+a);
		++a;
		System.out.println("a:"+a);
		//--
		a--;
		System.out.println("a:"+a);
//		-------------------------------
		System.out.println("-----------------");
		int b=a;
		System.out.println("b:"+b);
		int c=a++;//这一步过后a+1即a为11,但是c还是10
		System.out.println("c:"+c);
		int d=++a;//这一步时a+1即a为12,d也为12
		System.out.println("d:"+d);
		int e=a--;//这一步过后a-1即a为11,但是e还是12
		System.out.println("e:"+e);
		int f=--a;//这一步时a-1即a为10,f也为10
		System.out.println("f:"+f);

 *  6.赋值运算符:
 *          基本赋值运算符:=
 *          扩展赋值运算符:+=,—=,*=,/=等等(隐含强制类型转换规则)
 *          例子

int a=10;//严格叫法:把10数值赋值给int类型的变量a
		System.out.println("a:"+a);
		System.out.println("---扩展运算符小例子-----------------------------");
		a+=20;//a=a+20;以此类推
		System.out.println("a:"+a);
		a*=20;
		System.out.println("a"+a);
		a/=100;
		System.out.println("a"+a);
		a-=5;
		System.out.println("a"+a);
		//扩展:扩展的赋值运算符,隐含了强制类型转换
		//a+=10:相当于:a=(a的数据类型)(a+10)
		byte s=127;
		s+=1;
		System.out.println("s:"+s);//128超越byte最大数值127,进行强制转换后损失精度变成,最终输出-128

   
 *  
 *  7.关系运算符:
 *      ==,!=,>=,<=,>,<  结果是布尔类型boolean
 *      例子:

int a=10;
		int b=20;
		int c=10;
		//==
		System.out.println(a==b);//false
		System.out.println(a!=b);//true
		System.out.println(a>=b);//false
		System.out.println(a<=b);//true
		System.out.println(a==c);//true

 *  8.逻辑运算符:
 *    用于连接关系表达式(a>b,a==b,a<=b等等就是关系表达式,因为有关系运算符)
 *    &,|,^,!(与、或、逻辑异或、非)
 *    &&,||(双与,双或)
 *    双与、双或:有短路效果,因为左边为false,则右边不执行。但是单与无论左边是啥 右边都会执行        
 *    例子:

int a=3;
		int b=4;
		int c=5;
		
		//单与& 有一个是false则false
		System.out.println((a>b)&(a>c));//f&f--f
		System.out.println((a>b)&(a<c));//f&t--f
		System.out.println((a<b)&(a>c));//t&f--f
		System.out.println((a<b)&(a<c));//t&t--t
		System.out.println("----------------");
		//或| 有一个是true则true
		System.out.println((a>b)|(a>c));//f&f--f
		System.out.println((a>b)|(a<c));//f&t--t
		System.out.println((a<b)|(a>c));//t&f--t
		System.out.println((a<b)|(a<c));//t&t--t
		System.out.println("-----------------");
		//逻辑异或^ 相反就true,相同就是false
		System.out.println((a>b)^(a>c));//f&f--f
		System.out.println((a>b)^(a<c));//f&t--t
		System.out.println((a<b)^(a>c));//t&f--t
		System.out.println((a<b)^(a<c));//t&t--t
		System.out.println("----------");
		//非 ! 将false-true互换
		System.out.println((a>b));//false
		System.out.println(!(a>b));//true
		System.out.println((a==b));//false
		System.out.println(!(a==b));//true
		System.out.println("------难点-----------");
		//双与&& 与单与结果一样,即有一个是false则false。但是双与有一个短路的效果,因为左边为false则右边不执行(切记是false,若左边是true,则没有短路效果!)
		System.out.println((a>b)&&(a>c));//f&f--f
		System.out.println((a>b)&&(a<c));//f&t--f
		System.out.println((a<b)&&(a>c));//t&f--f
		System.out.println((a<b)&&(a<c));//t&t--t
		System.out.println("-------------------");
		int x=10;
		int y=20;
		System.out.println((x++>10)&(y++>30));//f&f-f,x此时为10,这条语句过后为11,y此时为20,这条过后为21
		System.out.println("x:"+x);//11
		System.out.println("y:"+y);//21
		System.out.println("BUT---短路--------");
		System.out.println((x++>11)&&(y++>20));//f&f-f,x此时为11,这条过后为12,y此时为21,且短路,则y过后还是21.
		System.out.println("x:"+x);//12
		System.out.println("y:"+y);//21
		
		System.out.println("-------难点---------");
		//双或|| 与单或结果一样,即 有一个是true则true。但是双或也有短路效果,因为左边为true则右边不执行(切记是true,若左边是false,则没有短路效果!)
		System.out.println((a>b)||(a>c));//f&f--f
		System.out.println((a>b)||(a<c));//f&t--t
		System.out.println((a<b)||(a>c));//t&f--t
		System.out.println((a<b)||(a<c));//t&t--t
		System.out.println("--------------------");
		int p=10;
		int o=20;
		System.out.println((p++>10)|(o++>20));//f&f-f,此时p为10,这条过后为11,此时o为20,这条过后为21.
		System.out.println("p:"+p);//11
		System.out.println("o:"+o);//21
		System.out.println("-----BUT----短路----");
		System.out.println((p++>5)||(o++>20));//此时p为11,这条过后为12,由于true,则直接短路,后面o还是原来数值,即o还是为21.
		System.out.println("p:"+p);//12
		System.out.println("o:"+o);//21

 *    
 *  9.三元表达式
 *     格式: (关系表达式)?表达式1:表达式2  
 *      关系表达式是true则返回表达式1,false则返回表达式2,注意表达式的定义,上文有提到。
 *      例子:

int a=10;
		int b=22;
		
		int c=(a==b)?a:b;
		System.out.println("c:"+c);//输出表达式2的值,即b的值,即输出12
		int d=(a!=b)?a:b;
		System.out.println("d:"+d);//输出表达式1的值,即a的值,即输出10

 *  10.练习
     * ①使用三元表达式判断是否相同
     * ②.直接定义三个变量求三个数中的最大值
     * ③.使用Scanner类使得可以键盘输入两个数,判断是否相等
     * ④.使用Scanner类使得可以键盘输入三个数, 求出最大值、        
     * 注意:Scanner 键盘输入数据的使用步骤:
 *         A:导包(直接用Scanner sc=new Scanner(System.in)然后eclipse会报错,再使用快捷键ctrl+shift+o快捷导包)
 *             import java.util.Scanner;
 *         B:创建键盘录入对象
 *             Scanner sc=new Scanner(System.in);
 *         C:接收数据
 *             int i=sc.nextInt();//sc对象调用内置方法,即此表达式的意思是键盘输入的整数会赋值给i    

代码如下:

//判断两个整数相同吗
		int a=10;
		int b=20;
		
		boolean flage=(a==b)?true:false;
		System.out.println(flage);//相同返回true 不同返回false
		
		//求三个数中最大值
		int x=10;
		int y=20;
		int z=15;
		int middle=(x>=y)?x:y;
		int max=(middle>=z)?middle:z;
		System.out.println("max:"+max);
		//键盘输入,程序灵活
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个数据:");
		int k=sc.nextInt();
		System.out.println("k:"+k);
	
		//键盘输入两个数,并对其判断是否相等且求和
		System.out.println("请输入数据q:");
		int q=sc.nextInt();
		System.out.println("请输入数据w:");
		int w=sc.nextInt();
		boolean flage1=(q==w)?true:false;
		System.out.println("q与w相等:"+flage1);
		System.out.println("q与w求和为:"+(q+w));
		//键盘输入三个数据,求其最大值
		System.out.println("请输入数据r:");
		int r=sc.nextInt();
		System.out.println("请输入数据t:");
		int t=sc.nextInt();
		System.out.println("请输入数据u:");
		int u=sc.nextInt();
		int m=(r>=t)?r:t;
		int ma=(m>=u)?m:u;
		System.out.println("最大值为:"+ma);
  * */