目录
运算符和C语言基本一样
算术运算符
单目运算符:自增自减运算符
比较运算符
逻辑运算符
位运算符(C语言好像没有)
优先级
交换算法
运算符和C语言基本一样
算术运算符
比如拆分一个三位数
public class java练习代码 {
public static void main (String[] args) {
int num2=986;
int bai2=num2/100;
int ge2=num2%10;
int shi2=num2%100/10;
System.out.println(num2+"的百位数字是:"+bai2);
System.out.println(num2+"的十位数字是:"+shi2);
System.out.println(num2+"的个位数字是:"+ge2);
}
}
单目运算符:自增自减运算符
public class java练习代码 {
public static void main (String[] args) {
int a=1;
a+=2;
System.out.println(a);
System.out.println("-------");
int b=12;
--b;
System.out.println(b);
System.out.println("-------");
int c=5;
// ++在后,先用再+
//--在后,先用再-
int d=c++;
System.out.println(c);
System.out.println(d);
System.out.println("-------");
//++在前,先+再用
//--在前,先-再用
int x=15;
int y=++x;
System.out.println(x);
System.out.println(y);
}
}
比较运算符
字符串之间的等值比较不能用==,而要用.equals()
import java.util.Scanner;
public class java练习代码 {
public static void main (String[] args) {
int num1=23;
int num2=23;
boolean flag=num1<num2;
System.out.println(flag);
double d1=1.0;
double d2=1.0000000000000000000123;
System.out.println(d1==d2);
String str1="abc";
String str2="abc";
System.out.println(str1==str2);
Scanner sc=new Scanner(System.in);
String str3=sc.next();
System.out.println(str1==str3); //比较字符串的地址是否一致
boolean f=str1.equals(str3); //比较字符串的值是否一致
System.out.println(f);
char c='a';
char d='b';
System.out.println(c==97);
System.out.println(c<d);
}
}
逻辑运算符
&& 逻辑与 两个条件同时成立,整个表达式才成立 :同真则真,有假则假
|| 逻辑或 两个条件只要有一个成立,则整个表达式成立 :有真则真,同假则假
支持短路,即第一个表达式的结果就可判断整个表达式的结果,则第二个表达式就无需判断
!取反
public class java练习代码 {
public static void main (String[] args) {
int num1=15;
int num2 =1;
boolean f=(num1<10)&&(num2>2);
System.out.println(f);
boolean f2=(num1<10)||(num2>2);
System.out.println(f2);
//&& || 支持短路
boolean f3=(num1<10)||(num2++<3);
System.out.println(f3);
System.out.println(num2);
//取反
boolean f4=!f3;
System.out.println(f4);
}
}
位运算符(C语言好像没有)
<< 左移:相当于乘法,乘以2的N次方
>>右移:相当于整除,除以2的N次方
& 按位与 :同1则1,遇0则0
|按位或:有1则1,同0则0
^ 按位异或 :不同为1,相同为0
public class java练习代码 {
public static void main (String[] args) {
int a=5;
int b=5<<1;
System.out.println(b); //结果是10
int c=5>>1;
System.out.println(c);
int m=5;
int n=13;
System.out.println(m&n);
int num5=5;
int num6=13;
System.out.println(num5^num6); //8
System.out.println(num5^num6^num6); //5
}
}
优先级
先运算,再比较,然后连接,最后赋值
小括号的优先级最高,建议添加小括号增强代码的可读性。
交换算法
方法一:申请临时变量(用的最多)
temp=a;
a=b;
b=temp;
方式二:加减法
a=a+b;
b=a-b;
a=a-b;
方式三:异或法
a=a^b;
b=a^b;
a=a^b;