美文网首页
算数运算符

算数运算符

作者: 张轻舟 | 来源:发表于2018-10-21 20:46 被阅读6次
算数运算符

通过算数运算符可以完成基本的加减乘除取余的运算操作

算数运算符有哪些

  • 求和
  • 相减
  • 乘积
    / 相除
    ++ 自加1
    -- 自减1
    % 取余、求模
例:
int a = 10;
int b = 3;

System.out.println(a+b); //13
System.out.println(a-b); //7
System.out.println(a*b); //30
System.out.println(a/b); //3 因为是int类型,所以结果也是int类型
System.out.println(a%b); //1

注意事项:

整数相除只能得到整数。如果想得到小数,必须把数据变化为浮点数类型。
/获取的是除法操作的商,%获取的是除法操作的余数
++这个叫做自增运算符,- -叫做自减运算符

例:
int k = 10;
k++;//相当于k = k + 1
System.out.println("k=" + k); 
//这里面的+号是做的字符串相加的运算,输出结果为k=11

int j = 5;
++j;//相当于j = j + 1
System.out.println("j=" + j); //j=6

int m = 8;
m--;//相当于m = m - 1
System.out.println("m=" + m); //m=7 

int n = 6;
--n;//相当于n = n - 1 
System.out.println("n=" + n); //n=5

+号在java中有三种作用,代表正号,做加法运算,字符串的连接符

上面的自增(自减)运算符写在变量的前面和后面有什么区别呢?

单独使用:
放在变量的前面和后面效果一样,就像上面的例子
参与运算使用:
放在变量的前面,先自增或者自减,然后再参与运算。
放在变量的后面,先参与运算,再自增或者自减。
例:

int m = 10;
int e = m ++; //++如果出现在变量的后面,先赋值,然后自加1
System.out.println("e="+e); //10
System.out.println("m="+m); //11

int c = 10;
int d = ++c; //++如果出现在变量的前面,先自加1,然后再赋值
System.out.println("d="+d); //11
System.out.println("c="+c); //11

int z = 10;
System.out.println(z++); //10
System.out.println(z); //11

int y = 10;
System.out.println(++y); //11
System.out.println(y); //11

小练习:

第一题 请问下面程序最后打印的结果是什么?

int a = 10;
int b = 10;
int c = 10;

a = b++;                    
c = --a;                                
b = ++a;                        
a = c--;                                

System.out.println("a = " + a + ",b = " + b + ",c = " + c);

第二题 请问下面程序最后打印的结果是什么?

int x = 4;
int y = (x++)+(++x)+(x*10);
System.out.println("x = " + x + ",y = " +  y);

第三题 下面程序有没有问题?

byte b = 10;
b = b + 1;                
System.out.println("b = " + b);

第四题 请问下面程序最后打印的结果是什么?

int i = 0;
i = i++;
System.out.println(i);

答案分析

第一题:

a = b++;    //此时a的值是10 ,b的值是11
c = --a;    //a的值是9, c的值是9            
b = ++a;    //a的值是10, b的值是10    
a = c--;    //a的值是9, c的值是8
第二题:
第一个括号里面的x++的值是4,第二个括号里面的++x的值是6,第三个括号里面的x*10的值是60

第三题:
第二行代码里面有问题,因为1默认是int类型,当byte与int进行混合运算的时候,会提升为int类型,两个int相加的结果还是int,赋值给byte会损失精度。

第四题:
这里面涉及到内部的运行步骤:先用一个临时的变量temp保存变量自增前的值,然后变量自增,最后自增表达式会把temp的值作为整个表达式的值返回,也就是把temp的值返回给了i,由于temp保存的是i自增前的值,所以i的值不会变。

通过字节码(编译后的.class文件)的解释:

Code:
0: iconst_0 //将常量’0’push入操作数栈(operand stack,与普通栈不同)
1: istore_1 //将常量’0’存储到栈(注意不是堆,局部变量存储在栈中)
2: iload_1 //将常量’0’载入到操作数栈
3: iinc 1, 1 //在栈中将a增1,a从’0’变为’1′
6: istore_1 //在操作数栈中将常量”重新存储到栈,a从’1’变回’0′
7: getstatic #2; //Field java/lang/System.out:Ljava/io/PrintStream;
10: iload_1
11: invokevirtual #3; //Method java/io/PrintStream.println:(I)V
14: return

相关文章

  • Swift--运算符

    算数运算符 关系运算符 逻辑运算符 位运算符 其他运算符 算数运算符 算数运算符有 一元运算符、 二元运算符、 算...

  • MySQL运算符

    算数运算符,比较运算符,逻辑运算符,位运算符 算数运算符: + - * / % 比较运算符: =, <>, !=...

  • C语言 运算符与表达式

    ###算数运算符:‘+’,‘-‘,’*‘,’/',’%(取余)‘,’+(正号)‘,’-(负号)‘ 算数运算符:%是...

  • JavaScript快速入门03-运算符

    JS的运算符 算数运算符 算数运算符用于对数值进行算数运算 运算符描述说明+加法运算-减法运算*乘法运算/除法运算...

  • sqlite(6)-运算符

    算数运算符 比较运算符 逻辑运算符 位运算符 SQLite算数运算符## 实例## sqlite> .mode l...

  • JS常用运算符

    Get Started 算数运算符string运算 比较运算符void逗号运算符运算顺序 逻辑运算符 算数运算符 ...

  • Java运算符

    Java的运算符,分为四类: 算数运算符、关系运算符、逻辑运算符、位运算符。 算数运算符(9):+ - * / %...

  • Java的运算符

    Java的运算符,分为四类: 算数运算符、关系运算符、逻辑运算符、位运算符。 算数运算符(9):+ - * / %...

  • 04-运算符

    算数运算符 1.什么是算数运算符?- + - * / % 2.算数运算符的优先级和结合性* / % 优先级要高...

  • Python常用运算符||算数运算符

    标准算数运算符加(+)、减(-)、乘(*)、除(/)、整除(//)取余运算符%幂运算符** 一、标准算数运算符 注...

网友评论

      本文标题:算数运算符

      本文链接:https://www.haomeiwen.com/subject/dcrizftx.html