- 算术运算符
class alstest
{
public static void main(String[] args)
{
int num1=12;
int num2=3;
int num=num1/num2;
System.out.println(num);
double d1=12.0;
int d2=3;
double d=d1/d2;
System.out.println(d);
//后–,先取值,后运算,先将a的值赋予b,在进行a–
int a=1;
//int b=a–;
//System.out.println(a);
// System.out.println(b);
//前++,前运算,后取值,先对a进行运算,再将运算后的值赋予b
int c=++a;
System.out.println(a);
System.out.println©;
}
}计算个十百位class AriExer
{
public static void main(String[] args)
{
int testDigit=185;
int hundard=testDigit/100;
int shi=testDigit%100/10;
//int ge=testDigit%100%10;
int ge=testDigit%10;
System.out.println(“百位是:”+hundard);
System.out.println(“十位是:”+shi);
System.out.println(“个位是:”+ge);
}
}
- 赋值运算符
class SetValueTest
{
/*
= -= += = /= %=
/
public static void main(String[] args)
{
//赋值符号:=
int i1=10;
int j1=10;
int i2 ,j2;
//连续赋值
i2=j2=10;
int i3=10,j3=10;
//****************************
int num1=10;
num1+=2;//num1=num1+2
System.out.println(num1);//12
int num2=10;
num2/=2;//num2=num2/2
System.out.println(num2);//5
int num3=12;
num3%=5;//num3=num3%5
System.out.println(num3);
short s1=10;
s1=+2;
System.out.println(s1);
//********************************
//开发中,如果希望变量实现+1的操作,有几种方法(前提:int num=10)
//方式1:num=num+1;
//方式2:num+=1;(推荐)不会改变数据类型,在int类型中不明显,在其他数据格式中会显示出来,比如short
//方式3:num++;(推荐)
int n=10;
n+=(n++)+(++n);//n=n+(n++)+(++n);
System.out.println(n);//32
}
}
- 比较运算符
class CompareTest
{
/*
比较运算符:
== != >= <= instanceof
结论:
1、比较运算符的结果是boolean类型
2、区分==和=
*/
public static void main(String[] args)
{
int i=10;
int j=20;
System.out.println(ij);
System.out.println(i=j);
boolean b1=true;
boolean b2=false;
System.out.println(b1b2);//false
//System.out.println(b1=b2);//false b1=b2=false;
System.out.println(b2=b1);//true b1=b2=true;
}
}
- 逻辑运算符
class LogicTest
{
/*
& && | || ^
说明:
1、逻辑运算符操作的都是boolean类型的变量
/
public static void main(String[] args)
{
//区分&与&&
//相同点:&和&&的运算结果相同
//相同点:当符号左边是true时,二者都会执行符号右边的运算
//不同点:当符号左边是false时,&继续执行右边的运算,&&不再执行符号右边的运算
boolean b1=true;
int num1=10;
b1=false;
if (b1&(num1++>0))//进行了++
{
System.out.println(“我现在在北京”);
}else{
System.out.println(“我现在在南京”);
}
System.out.println(“num1=”+num1);
boolean b2=true;
int num2=10;
b2=false;
if (b1&&(num2++>0))//没有进行++,因为b1是false,&&导致短路,未曾进行++
{
System.out.println(“我现在在北京”);
}else{
System.out.println(“我现在在南京”);
}
System.out.println(“num2=”+num2);
//***********************************************************
//区分|与||
//相同点:&和&&的运算结果相同
//相同点:当符号左边是true时,二者都会执行符号右边的运算
//不同点:当符号左边是false时,&继续执行右边的运算,&&不再执行符号右边的运算
boolean b3=true;
int num3=10;
b3=false;
b3=true;
if (b3|(num3++>0))//进行了++
{
System.out.println(“我现在在北京”);
}else{
System.out.println(“我现在在南京”);
}
System.out.println(“num3=”+num3);
boolean b4=true;
int num4=10;
b4=false;
b4=true;
if (b4||(num4++>0))//没有进行++,因为b1是false,&&导致短路,未曾进行++
{
System.out.println(“我现在在北京”);
}else{
System.out.println(“我现在在南京”);
}
System.out.println(“num4=”+num4);
}
}
位运算符class BitTest
{
/*
位运算符:
<< 左移 相当于在原先得基础上乘以2^2
>> 右移
结论:
1、位运算符操作的都是整型得数据
2、<<:在一定的范围内,每向左移1位,相当于乘以2
>>:在一定的范围内,每向右移1位,相当于除以2
面试题:最高效得计算28? 2<<3或8<<1
/
public static void main(String[] args)
{
int i1=3;
int i2=i1<<2;
System.out.println(i2);
//练习:
int num1=10;
int num2=20;
//方式1:定义临时变量(推荐方式)
//int num3=num1;
//num1=num2;
//num2=num3;
//方式2**:好处:不用定义临时变量
//弊端:1、相加操作可能超出存储范围 2、有局限性:只是适用于数值类型**
//num1=num1+num2;
//num2=num1-num2;
//num1=num1-num2;
//方式3:使用位运算符
num1=num1^num2;
num2=num1^num2;
num1=num1^num2;
System.out.println(num1);
System.out.println(num2);
}
}三元运算符class ThreeTest
{
/*
三元运算符:
*1、结构:(表达式)?表达式1:表达式2;
2、说明
条件表达式的结果是boolean类型
根据条件表达式的真或者假,决定执行表达式1,还是表达式2
如果表达式位true,则执行表达式1
如果表达式为false,则执行表达式2
表达式1和表达式2要求是一致的
三元运算符是可以嵌套的
/
public static void main(String[] args)
{
//获取两个数的最大值
int m=12;
int n=3;
int max=(m>n)?m:n;
System.out.println(max);
String strMax=(m>n)?“m大”:“n大”;
System.out.println(strMax);
n=12;
String maxStr=(m>n)?“m大”😦(m==n)?“m和n相等”:“n大”);
System.out.println(maxStr);
//获取三个数的最大值
int n1=12;
int n2=23;
int n3=11;
//int max1=(n1>n2)?n1:n2;
//int max2=(max1>n3)?max1:n3;
//System.out.println(max2);
//将两行代码合并,但是不推荐使用,因为可读性太差
int max1=(n1>n2)?((n1>n3)?n1:n3)😦(n2>n3)?n2:n3);
System.out.println(max1);
//改写成if-else
//凡是可以使用三元运算符的地方,都可以改写成if-else,反之,不成立
//如果同时可以使用三元运算符和if-else时,推荐使用三元运算符
if(n1>n2){
if(n1>n3){
System.out.println(n1);
}else{
System.out.println(n3);
}
}else{
if(n2>n3){
System.out.println(n2);
}else{
System.out.println(n3);
}
}
}
}