导航:首页 > 编程语言 > java运算顺序

java运算顺序

发布时间:2022-10-02 23:29:52

java的运算符都是从右到左进行的吗

首先,运算符运算的时候,先要考虑优先级;
如果是同级的就得考虑结合性;从右向左执行,相当于 后面多了个括号,aa(aa)
经验,一般的时候综合性问题,用括号解决,避免麻烦

❷ Java运算符计算顺序问题

因为

❸ java中的运算++顺序

int x = -1;
int y =
x++
+
++x ;
我教你一个法,你把程序写成上面的形式,在调试可以看出,程序给先计算x++ 在 ++x 然后它会把 x++运算的结果赋给y。如果 int y = ++x + x++;结果是一样的。

❹ java计算顺序问题

x+=x+(x=1)
等同于
x = x + x + (x = 1)
先不说优先顺序,计算机在计算时候都是从左往右计算的,每次计算前都会检查运算符的优先级
当从左开始时候
3 + 3 = 6
然后继续 ,碰见 + ( x = 1 ) 小括号,优先计算小括号里的,小括号里是赋值,结果为1,继续
6 + 1 = 7
所以最后 x= 7

===================================================

这样理解吧:

String str="a";Object result = 1 + 1 + ( 1 + str );System.out.println( result );这个result结果是“21a”,这个就能说明它是从左往右扫描,逐步计算的

以上回答你满意么?

❺ java运算符的优先级口诀急用急用!!

个表达式中进行若干操作时,每一部分都会按预先确定的顺序进行计算求解,称这个顺序为运算符的优先顺序。

在表达式中,当运算符不止一种时,要先处理算术运算符,接着处理比较运算符,然后再处理逻辑运算符。所有比较运算符的优先顺序都相同;也就是说,要按它们出现的顺序从左到右进行处理。而算术运算符和逻辑运算符则必须按下列优先顺序进行处理:

算术
指数运算 (^)
负数 (–)
乘法和除法 (*、 /)
整数除法 (\)
求模运算 (Mod)
加法和减法 (+、 –)
字符串连接 (&)

比较
相等 (=)
不等 (<>)
小于 (<)
大于 (>)
小于或相等 (<=)
大于或相等 (>=)
Like
Is

逻辑
Not
And
Or
Xor
Eqv
Imp

当乘法和除法同时出现在表达式中时,每个运算都按照它们从左到右出现的顺序进行计算。当乘法和除法同时出现在表达式中时,每个运算也都按照它们从左到右出现的顺序进行计算。可以用括号改变优先顺序,强令表达式的某些部分优先运行。括号内的运算总是优先于括号外的运算。但是,在括号之内,运算符的优先顺序不变。

字符串连接运算符 (&) 不是算术运算符,但是,就其优先顺序而言,它在所有算术运算符之后,而在所有比较运算符之前。

Like 的优先顺序与所有比较运算符都相同,实际上是模式匹配运算符。

Is 运算符是对象引用的比较运算符。它并不将对象或对象的值进行比较,而只确定两个对象引用是否参照了相同的对象。

❻ java中运算顺序问题

++ -- 运算符的机制是这样的:
如果在右边, 就是先用变量的值,然后再加1 或者减1
如果在左边,就是先加1或减1 , 再用变量的值

c=a++; 在右边, 那么就是第一种情况 先把a的值赋值给c ,所以C为3, 然后a再加1. a=4
d=b--; 在右边, 也是第一种情况, 把b的值赋值给d, d=4 b =3

❼ java运算优先级

所有的数学运算都认为是从左向右运算的,Java语言中大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,其中,单目运算符、赋值运算符和三目运算符是从右向左结合的,也就是从右向左运算。
乘法和加法是两个可结合的运算,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。
一般而言,单目运算符优先级较高,赋值运算符优先级较低。算术运算符优先级较高,关系和逻辑运算符优先级较低。多数运算符具有左结合性,单目运算符、三目运算符、赋值运算符具有右结合性。
Java 语言中运算符的优先级共分为 14 级,其中 1 级最高,14 级最低。在同一个表达式中运算符优先级高的先执行。表 1 列出了所有的运算符的优先级以及结合性。

使用优先级为 1 的小括号可以改变其他运算符的优先级,即如果需要将具有较低优先级的运算符先运算,则可以使用小括号将该运算符和操作符括起来。例如下面的表达式:(x-y)*z/5
在这个表达式中先进行括号内的减法运算,再将结果与 z 相乘,最后将积除以 5 得出结果。整个表达式的顺序按照从左向右执行,比较容易理解。

再来看一个复杂的表达式,如下所示。--y || ++x && ++z;
这个表达式中包含了算术运算符和逻辑运算符。根据表 1 中列出的优先级,可以确定它的执行顺序如下:
① 先计算 y 的自减运算符,即 --y。
② 再计算 x 的自增运算符,即 ++x。
③ 接着计算 z 的自增运算符,即 ++z。
④ 由于逻辑与比逻辑或的优先级高,这里将 ② 和 ③ 的结果进行逻辑与运算,即 ++x && ++z。
⑤ 最后将 ④ 的结果与 ① 进行逻辑或运算,即 --y||++x&&++z。

如果没有上述对该表达式执行顺序的说明,第一眼看到它时将很难识别优先级。对于这类问题,可以通过添加小括号使表达的顺序更加清晰,而不用去查优先级表。如下所示为改进后的表达式。(--y)||((++x)&&(++z));
技巧:记住这么多运算符的优先级是比较困难的,因此读者应该在实际应用中多多练习。

因为 Java 运算符存在这种优先级的关系,因此在做 SCJP 的时候或者某些公司的面试题,有如下 Java 代码:

int a = 5;
int b = 4;
int c = a++- --b*++a/b-- >>2%a--;

问 c 的值是多少?这样的语句实在太恐怖了,即使多年的老程序员看到这样的语句也会眩晕。这样的代码只能在考试中出现,作为一个程序员如果写这样的代码,恐怕他马上就得走人了,因为他完全不懂程序开发。

源代码就是一份文档,源代码的可读性比代码运行效率更重要。 因此在这里要提醒大家:

❽ java中的运算

因为2和5都是整数,所以2/5发生的是整除,会直接丢弃小数部分,结果是0。

而12%5是求12除以5后的余数,结果是2。

所以,1-2/5+12%5=1-0+2=3。

下图是验证:

❾ JAVA运算优先级

先运算b+2=22,然后是a-=22,a=-12.最后是 a+=-12, a=-2.

运算符优先级表
优先级 运算符 结合性
1 () [] . 从左到右
2 ! +(正) -(负) ~ ++ -- 从右向左
3 * / % 从左向右
4 +(加) -(减) 从左向右
5 << >> >>> 从左向右
6 < <= > >= instanceof 从左向右
7 == != 从左向右
8 &(按位与) 从左向右
9 ^ 从左向右
10 | 从左向右
11 && 从左向右
12 || 从左向右
13 ?: 从右向左
14 = += -= *= /= %= &= |= ^= ~= <<= >>= >>>= 从右向左

❿ Java运算优先顺序问题

x+=x+(x=1)

等同于

x=x+x+(x=1)

先不说优先顺序,计算机在计算时候都是从左往右计算的,每次计算前都会检查运算符的优先级

当从左开始时候

3+3=6

然后继续,碰见+(x=1)小括号,优先计算小括号里的,小括号里是赋值,结果为1,继续

6+1=7

所以最后x=7


===================================================


这样理解吧:


Stringstr="a";
Objectresult=1+1+(1+str);
System.out.println(result);

这个result结果是“21a”,这个就能说明它是从左往右扫描,逐步计算的

阅读全文

与java运算顺序相关的资料

热点内容
java和php通信 浏览:679
为什么黑程序员 浏览:162
程序员男生 浏览:455
戴尔文件夹内文件怎么置顶 浏览:582
云服务器6m网速 浏览:722
vivo手机中国联通服务器地址 浏览:862
工程总控编译失败 浏览:706
燕赵红枫app如何下载 浏览:867
php查杀软件 浏览:878
教育管理学pdf 浏览:547
服务器均衡怎么使用 浏览:626
linux中jps 浏览:954
单片机实验感想 浏览:561
程序员级别数学算法逻辑 浏览:900
2k21公园怎么换服务器 浏览:724
php释放数据库连接 浏览:722
php网页抓取工具 浏览:726
android设置对齐方式 浏览:23
linux创建网页 浏览:280
净化车间门算法 浏览:934