运算符:对常量或者变量进行操作的符号
表达式:用运算符对常量或变量进行操作的符合java语法的式子就可以称为表达式
例子:int a=50;
int b=50;
int c=a+b;
这里的+叫运算符并且是算术运算符;a+b叫表达式,因为+是算术运算符,所以这个表达式叫算术表达式。
1.2算术运算符 符号作用说明+加-减*乘/除获取的是两个数据做除法的商%取余获取的是两个数据做除法的余数整数相除只能得到整数,要想得到小数必须有浮点数参与运算
1.3字符的“+”操作例如:int a=10;
int b=3;
int c=a/b;
Systm.out.println(c);
结果为3而不是3.3333,因为除法运算得到的结果是两个数据做除法的商。
拿字符在计算机底层对应的数值来计算的
‘A'-------->65,A-Z是连续的
'a'--------->97,a-z是连续的
'0'-------->48,0-9是连续的
算术表达式在包含多种数据类型时,整个算术表达式的类型会自动进行提升
提升规则:
byte、short、char类型自动转换为int类型
整个表达式饿类型自动提升为表达式中等级最高的类型
byte、short、char----->int----->long----->float----->double
1.4字符串的"+"操作①当"="出现在两个字符串中间时,它代表的是一个连接符,而不是运算符,
例如:String s1="zbc";
String s2="123";
Systm.out.println(s1+s2);
输出结果是zbc123
②当“+”出现在字符串中时,就是连接运算符,否则就是算术运算符,当连续执行"+"操作时,从左到右依次执行
例如:“我”+“爱你”+1+99+“年”
大家认为这个代码运行的结果是什么?我爱你100年?结果应该是我爱你199年。
例二:1+99+“年”+“前”’“我”+“爱你”
这个代码的运行结果是100年前我爱你
public class OperatorDemo03{ public static void main(String[] args){ System.out.println("I"+"LOVE"+1000+0+"year"); System.out.println(1000+9000+"ago"+"I"+"LOVE"+"year"); }}
2.赋值运算符 符号作用说明=赋值a=10,将10赋给变量a+=加后赋值a+=b,将a+b的值赋给a-=减后赋值a-=b,将a-b的值赋给a*=乘后赋值a*=b,将a*b的值赋给a/=除后赋值a/=b,将a/b的商赋给a%=取余后赋值a%=b,将a%b的余数赋给a
public class OperatorDemo{public static void main(String[] args){//把10赋值给int类型的变量iint i = 10;System.out.println("i:"+i);//+=把左边和右边的数据做加法操作,结果赋值给左边i += 20;//i = i+20;System.out.println("i:"+i);//注意:扩展的赋值运算底层隐含了强制类型转换的含义short s = 20;//s += 20;//s = (short)(s+20);System.out.println("s:"+s);}}
3.自增自减运算符 符号作用说明++自增变量的值加1--自减变量的值减1i++与++i的区别:
i++是先将i参与运算,后进行自增操作;++i是先进行自增操作,用自增后的i去运算;
例如:int i=0;
int a =i++;
这里的a是0;如果把上面的i++换成++i,那么a的值就是1。
public class OperatorDemo04{public static void main(String[] args){//定义变量int i =1;System.out.println("i:"+i);//单独使用i++;//++i;System.out.println(i);//参与操作使用int j = i++;int j =++i;System.out.println("i:"+i);System.out.println("j:"+j);}}
4.关系运算符 符号作用==a==b,判断a是否等于b,成立为true,不成立为false!=a!=b,判断a是否等于b,不成立为true,成立为false>=a>=b,判断a是否大于等于b,成立为true,不成立为false<=a<=b,判断a是否小于等于b,成立为true,不成立为falsea>b,判断a是否大于b,成立为true,不成立为false注意:关系运算符的结果都是boolean类型,只有true和false,千万不要把"=="误写成"="
public class OperatorDemo05{public static void main(String[] args){//定义变量int i =100;int j =200;int k =300;//==System.out.println(i==j);System.out.println(i==k);System.out.println("-----------");//!=System.out.println(i!=j);System.out.println(i!=k);System.out.println("-----------");//>System.out.println(i>j);System.out.println(i>k);System.out.println("------------");//
在数学中有3 先拆解这个算式为:x>3和x<8 合并后就是:x>3&&x<8 &&就是一个逻辑运算符 我们可以说逻辑运算符就是连接关系表达式的运算符,当然逻辑运算符也可以直接连接布尔类型的常量或变量 public class OperatorDemo06{public static void main(String[] args){//定义变量int i = 10;int j = 20;int k = 30;//& 有false则falseSystem.out.println((i 注意事项: 逻辑与&,无论左边真假,右边都要执行短路与&&,如果左边为真,执行右边;如果左边为假,右边不执行逻辑或|,无论左边真假,右边都要执行短路或||,如果左边为假,执行右边;如果左边为真,右边不执行7.三元运算符 格式:关系表达式?表达式1:表达式2 范例:a>b?a:b 计算规则:①先计算关系表达式的值 ②如果关系表达式的值为true,则输出a ③如果关系表达式的值为false,则输出b public class OperatorDemo08{public static void main(String[] args){//定义两个变量int a = 100;int b = 200;//获取两个数据中的最小值int min = a 调用Scanner类步骤: ①导包:import java.util.Scanner; ②创建对象:Scanner sc = new Scanner(System.in); ③接收数据:int x = sc.nextInt(); import java.util.Scanner;public class ScannerDemo{public static void main(String[] args){//创建对象System.out.println("请输入数据:");Scanner sc = new Scanner(System.in);//接收对象int x = sc.nextInt();//输出数据System.out.println("x:"+x);}} 需求:动物园里有两只老虎,一只老虎重200kg,另一只老虎重180kg,请用程序实现两只老虎体重是否相同。 public class TwoTiger{public static void main(String[] args){//定义变量int t1=180;int t2=200;//比较体重boolean value=t1==t2?true:false;System.out.println("value:"+value);}} 需求:一座寺庙里有3个和尚,已知他们的身高分别是150cm、210cm、165cm,请用程序实现他们的最高身高。 public class ThreeMonks{public static void main(String[] args){//定义变量int a=150;int b=210;int c=165;//获取身高int max1=a>b?a:b;int max2=max1>c?max1:c;System.out.println("the highest is:"+max2+"cm");}} 需求:一座寺庙里住着三个和尚,他们的身高必须经过测量得出,请用程序实现获取这三个和尚的最高身高。 import java.util.Scanner;public class ThreeMonks02{public static void main(String[] args){//从键盘获取三个和尚的身高,并赋值给变量m1,m2,m3System.out.println("请输入和尚1的身高:");Scanner sc = new Scanner(System.in);int m1 = sc.nextInt();System.out.println("请输入和尚2的身高:");int m2 = sc.nextInt();System.out.println("请输入和尚3的身高:");int m3 = sc.nextInt();//比较三个和尚的身高int max1 = m1>m2?m1:m2;int max2 = max1>m3?max1:m3;//输出三个和尚的最高身高System.out.println("三个和尚的最高身高是:"+max2);}}