拿字符在计算机底层对应的数值来计算
A=65 ;//A-Z连续
a=97;//a-z连续
0=48;//0-9连续
一个算数表达式中包含多个基本数据类型的值的时候,整个算数表达式的类型会自动进行提升;
byte,short,char都将被提升到int类型
整个表达式的类型自动
byte,short,char->int->long->float->double
public class OperatorDemo02 { public static void main(String[]args){ //定义两变量 int i =10; char c='A';//‘A’是65 c='a';//'a'的值是97 c='0';//'0'的值是48 System.out.println(i+c); //char ch=i+c; //char类型会被自动提升为int类型 int j =i+c; System.out.println(j); //int k=10+13.14; //13.14是double类型的,最终计算结果为double double d=10+13.14; System.out.println(d); } }
字符串相加完成的是字符串的拼接,当有其他数字或字符时,按加号从左往右运行算数运算。
以上运行结果:
itheima666,100年黑马
public class fuzhi{ public static void main(String[] args){ //把10赋值给int类型的变量 int i=10; System.out.println("i:"+i); //+=把左边和右边的数据做假发操作,结果赋值给左边 i+=20; //i=i+20; System.out.println("i:"+i); //注意:扩的赋值运算符彻底隐含了强制类型转换 short s=10; //s=(short)(s+20);(正确) s+=20;//(正确) //s=s+20; (错误: 不兼容的类型: 从int转换到short可能会有损失) System.out.println("s:"+s); } }
//自增运算符 public class zizeng{ public static void main(String[] args){ //定义变量 int i=10; System.out.println("i:"+i);//i=10 //单独使用 //i++; //System.out.println("i:"+i);//i=11 //++i; //System.out.println("i:"+i);//i=11 //参与操作使用 //int j=i++;//++在后,先赋值再加 //System.out.println("i:"+i);//i=11 //System.out.println("j:"+j);//j=10 int j=++i;//++在前,先加后赋值 System.out.println("i:"+i);//i=11 System.out.println("j:"+j);//j=11 } }
关系表达式的结果为true或者false
注意:=表示赋值,将后边的赋值给前边的
定义:连接关系表达式或者布尔类型的常量或变量
public class YunSuanFu{ public static void main (String[] args){ //定义变量 int i=10; int j=20; int k=30; //& 有false则false System.out.println((i>j)&(i>k));//false & false System.out.println((i<j)&(i>k));//true & false System.out.println((i>j)&(i<k));//F&T System.out.println((i<j)&(i<k));//T&T System.out.println(".........."); //| 有true则true System.out.println((i>j)|(i>k));//false & false System.out.println((i<j)|(i>k));//true & false System.out.println((i>j)|(i<k));//F&T System.out.println((i<j)|(i<k));//T&T System.out.println(".........."); //^相同为false不同为true System.out.println((i>j)^(i>k));//false & false System.out.println((i<j)^(i>k));//true & false System.out.println((i>j)^(i<k));//F&T System.out.println((i<j)^(i<k));//T&T System.out.println(".........."); //! System.out.println((i>j));//输出->false System.out.println(!(i>j));//输出->true } }
注:最常用的是&&,||,!
可以获取两个值中的最大值或最小值;
/*三元运算符 格式: 关系表达式?表达式1:表达式2; 范例: a>b ? a:b 执行流程 首先计算关系表达式的值(true或false) 如果为true,结果为表达式1 如果false,结果为表达式2 */ public class SanYuan{ public static void main(String[] args){ //定义两变量 int a=10; int b=20; //获取两数据中的最大值 int max=a>b?a:b; //输出结果 System.out.println("max:"+max); } }