运算符的分类 算数运算符 +, - ,* ,/ ,% 关系运算符 <,>,==,<=,>=,!=. 逻辑运算符&&,|| 三元运算符 ?:(举例 a<b?a:b) 位运算符&,^,| 移运算符<<,>>,>>> 赋值运算符=(举例 a=4) public class first { public static void main(String[] agrs) { //声明一个变量并赋值:num1=5,num2=3. int num1=5; int num2=3; int result=num1+num2;//将num1与num2的和赋值给变量result. System.out.println(result);//输出结果8. String a="5"; String b="3"; //在这里的变量a与b都被定义为字符串"5","3",他们之间做加法表示的是将两个字符 //串拼接起来,输出结果是53. Syestem.out.println(a+b); result=num1/num2; //值得注意这里是将num1与num2相除的值赋值给result. //因为num1与num2都是int类型的数据,所以他们相除也应该是int类型的数据,所以 //其结果为1(1),就是将1赋值给result. Syestem.out.println(result); double c=num1/num2; //由(1)可知是将1赋值给c.但是c是double的所以输出结果为1.0.值得注意的是:这里 //必须考虑到运算符的优先问题.很明显赋值运算符"="的优先级是低于"/"的. Syestem.out.println(c); } } 练习 从键盘上读入一个4位数,要求输出结果是由这个4位数各个位数颠倒后重新生成的一个4位数与各个位数上 的数之和例如输入1234.输出的结果是 4321 10 范例: import java.util.Scanner; public class First { public static void main(String[] agrs) { Scanner s=new Scanner(System.in); System.out.println("请输入一个4位数"); int num=s.nextInt(); int a=num/1000; int b=num%1000/100; int c=num%1000%100/10; int d=num%10; System.out.println("输出结果为: "); System.out.println(d*1000+c*100+b*10+a); System.out.println(a+b+c+d); } } 算术运算符 a+=b表示的是a=a+b.(-,*,/,%相同用法) public class First { public static void main(String[] agrs) { int a=5; int b=3; int a+=b;//表示的是a=a+b System.out.println(a);//a的值是3+5=8. System.out.println(b);//b的值是3. /* 值的注意的是这的a值已经发生了变化.a=8.所以在下次运算的时候是,运用8去运算,而 不是5.因此我们得出一个变量的数据是会根据程序中的运算发生变化的.在参与运算的 时候一定需要注意,此时的变量值是否已经发生了变化. */ a-=b;//表示的是a=a-b. System.out.println(a);//a的值是5. System.out.println(a);//b的值是3. } } ++与--的运用 public class second { public static void main(String[] agrs) { int m=5; int n=7; n=m++;//在这里是先将m的值参与赋值运算,然后再自加1 System.out.println(m);//m=6 System.out.println(n);//n=5 n=++m;//必须注意这与n=m++不同,在这里是m先自加1再参与赋值运算 System.out.println(m);//m=7 System.out.println(n);//n=7 n=m--;//这与m++是想同道理 System.out.println(m);//6 System.out.println(n);//7 n=--m;//与m--相同. System.out.println(m);//5 System.out.println(n);//5 //解析:首先明确m与n的值.从上可知m=5 n=5.然后根据运算顺序n=5-5+7+3=10 n=n++ - m-- + ++n + --m; System.out.println(m);//3 System.out.println(n);//10 } } &,|,^的运算方法 int a=3&7;//3-----0011 //7-----0111 //------0011=3,分别转化为2进制对比,如果对应的位数上有1就为1,没有就为0. int b=3|7;//3-----0011 //7-----0111 //------0111=7,分别转化为2进制对比,如果都为1就为1,没有就为0. int c=3^7;//3-----0011 //7-----0111 //------0100=4,分别转化为2进制对比,如果相同1就为0,不相同就为1. System.out.println(a);//a=3 System.out.println(b);//b=7 System.out.println(c);//c=4 -----------------------------------------------------------------------------------------------------------------
boolean flag=3>4||6>5; System.out.println(flag);//其结果true.或的运算.如果有一个为真,其结果就为真. flag=3<4?true:false; //三目运算.表示的是3是否小于4,如果小于则输出冒号前面的.如果不小于.就为冒号后面的. System.out.println(flag);//起结果为true &&"与"运算必须都为真是才为真.! "非"运算 如果为假则为真.如果为真则为假 ------------------------------------------------------------------------------------------------------------------- 衍生 public class third { public static void main(String[] agrs) { String str=""; //length长度.在这里表示求字符串长度. System.out.println(str.length());//输出结果为0 String str1=null;//null表示不存在 System.out.println(str1.length()); //编译是不会报错,但是在执行中或抛出空指针异常(nullPointerException) //当程序遇到这种情况时就会终止执行. } }