Java的运算符

- 算术运算符
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(b1
b2);//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 sta
tic void main(Str
ing[] 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);
}
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

牧码文

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值