java运算符

一、算术运算符

常用算术运算符有:+-*/%(取余)++(自增)、--(自减)、>> << 。

1.除法运算

在java程序中,对于以0作为除数的情况,根据操作数的数据类型做了不同的处理。对于整型数据的运算,它将会出现异常;而浮点型数据的运算,它将会得到一个无穷大值或者NaN。

整数在做除法运算时,去除小数部分,保留整数部分

除法运算的代码如下:

//两个整数在进行除法的时候,会保留整数部分,舍去小数部分
int i=5;
int j=2;
int result=i/j;//实际上2.5
System.out.println(result);//2
//如果要进行除法运算时,一般声明double类型变量进行运算
double d=5.0;
double d2=2.0;
double result2=d/d2;
System.out.println(result2);//2.5

2.取余运算

取余运算也会执行除法操作,所以,对于整形数据来说,也不能使用0作为取余运算中的除数,否则也会出现异常。

取余运算可以用于判断奇偶数,判断素数,求最大公约数的运算等。

取余运算的代码如下:

int i=5;
int j=2;
int result=i%j;
System.out.println(result);//1

//在进行取余时,得到结果的符号跟被取余数符号一致
int a=13;
int b=-2;
int result2=a%b;
System.out.println(result2);//1

//如果被取余数的绝对值小于取余数,结果就等于被取余数
int m=2;
int n=5;
int result3=m%n;
System.out.println(result3);//2

3.自增、自减

在编写程序时,经常需要对一个变量进行加1或者减1的运算,这时通常使用自增或自减运算符来完成。

自增自减又分为前置和后置自增自减,前置自增自减是先做运算再自增自减,后置自增自减是先自增自减再赋值。

自增自减运算符只能用于变量,而不能用于数字本身。

自增自减运算的代码如下:

int i=2;
i++;//i=i+1
int j=3;
j--;//j=j-1
System.out.println("i="+i);//3
System.out.println("j="+j);//2

//后置自增自减在做运算的时候,先赋值再去自增自减
int a=2;
int result=a++;//(1)result=a  (2)a++
System.out.println("a="+a);//3
System.out.println("结果为"+result);//2

//前置自增自减在做运算的时候,先自增自减再赋值
int b=3;
int result2=--b;//(1)--b  (2)result2=b
System.out.println("b="+b);//2
System.out.println("结果为"+result2);//2

4.移位

System.out.println(21>>2);//往右边移动几位,除以多少个2 21/4=5
System.out.println(21<<2);//往左边移动几位,乘以多少个2 21×4=84

二、关系运算符

关系运算符包括 ><>=<===!= 。

在java程序中,不等于使用!=来表示的,等于使用==,两者除了用于简单类型的操作数外,还可以用于比较引用类型数据。除这两者外,其他关系运算符都不能用于boolean类型的操作数。

关系运算符的代码如下:

//关系运算符运算的结果是Boolean类型的
int age=20;
int age2=18;
System.out.println(age>=age2);//true

三、逻辑运算符

逻辑运算符也称为布尔运算符,主要包括&&与、||或、!非。

变量a变量ba&&ba||b!a
falsefalsefalsefalsetrue
falsetruefalsetruetrue
truetruetruetruetrue
truefalsefalsetruefalse

与:有假即假,全真为真。

或:有真即真,全假为假

与运算:当第一个表达式为假时后面的表达式就不会再去运算了。

或运算:当第一表达式为真时后面的表示式不参与运算。

逻辑运算符的代码如下:

int m=20;
boolean result=m<10&&m>15;
boolean result2=m!=20||m>10;
System.out.println(result);//false
System.out.println(result2);//true

//短路逻辑与:当第一个表达式为false时,后面的表达式不会去执行
boolean result3=m<10&&m++>20;
System.out.println(m);//20

//短路逻辑或:当第一个表达式为true时,后面的表达式不会去执行
int n=20;
boolean result4=n>10||++n>20;
System.out.println(n);//20

四、三目运算符

三目运算符: boolean表达式?表达式1:表达式2 。

三目运算符代码如下:

//判断分数是否及格
int score=99;
String result=score>=60?"及格":"重修";
System.out.println(result);//及格

//给予条件做自增或者自减运算
int m=0;
int result2=m<=0?++m:m--;
System.out.println(m);//1
System.out.println(result2);//1

五、赋值运算

int sum=10;
sum+=2;// sum=sum+2
System.out.println(sum);//12
sum*=3;// sum=sum*3
System.out.println(sum);//36

六、字符串拼接运算

//在字符串中 + 叫拼接 
String str="100"; 
int i=123; 
String result = str + i; 
System.out.println(result);//100123 
// 先运算,再拼接 
String result2=100+100 +""; 
//先拼接,再运算 
String result3="100"+100+100;// "100100"+100=100100100 
System.out.println(result2); 
System.out.println(result3);//100100

小案例

1、求出三个身高中的最大身高

这里主要用到的是三目运算符,先把其中两个身高值进行比较求出一个较大值,再和最后一个身高值进行比较求出最大值。

代码如下:

    //定义一个求最大身高的方法
    public static void maxHeight(){
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入三个身高:");
        //从键盘获取三个身高值
        int a=scan.nextInt();
        int b=scan.nextInt();
        int c=scan.nextInt();
        //三元运算符求得最大身高
        int n=a>b?a:b;
        int max=c>n?c:n;
        System.out.println("最大身高是:"+max+"cm");
    }
    public static void main(String[] args) {
        //测试
        maxHeight();
    }

结果如下:

 

2、给出一个三位数,分别求出该数的百位 十位 个位

思路如下:

假设给出的数是142,那么我们先整除100,由于两个整数相除会舍去小数部分,那么我们会直接得到百位1;接着我们用142先整除10得到14,再用14对10取余得到十位4;最后用142直接对10取余可以得到个位2。

 代码如下:

    //定义一个计算百位十位个位的方法
    public static void calculate(){
        Scanner scan=new Scanner(System.in);
        System.out.println("请输入一个三位数:");
        int i=scan.nextInt();
        //直接整除100得到百位
        int a=i/100;
        //先整除10再对10取余得到十位
        int b=i/10%10;
        //直接对10取余得到个位
        int c=i%10;
        System.out.println("百位是"+a);
        System.out.println("十位是"+b);
        System.out.println("个位是"+c);
    }
    public static void main(String[] args) {
        calculate();
    }

结果展示:

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值