在单行多个后缀和前缀操作

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在单行多个后缀和前缀操作相关的知识,希望对你有一定的参考价值。

int i=0;
int j = --i;

int k = i++ + --i + i-- + j-- + --i + i;

System.out.print("k= "+k);  // k=-10

我似乎明白怎么来k的值是-10?

以下是我觉得应该发生。结果应该是-5按我的计算。

Expression                       |Evaluation                | Current Values
                                 |                          | i=0  ,j=-1   
i++                              | 0                        | i=1  ,j=-1   
i++ + --i                        | 0 + 0                    | i=0  ,j=-1   
i++ + --i + i--                  | 0 + 0 + 0                | i=-1 ,j=-1   
i++ + --i + i-- + j--            | 0 + 0 + 0 + -1           | i=-1 ,j=-2   
i++ + --i + i-- + j-- + --i      | 0 + 0 + 0 + -1 + -2      | i=-2 ,j=-2   
i++ + --i + i-- + j-- + --i + i; | 0 + 0 + 0 + -1 + -2 + -2 | i=-2 ,j=-2   

如果我错了请纠正我。

*修正取我的,而不是0我的错误后-1 *

现在的表达正在评估为-10(-1 + -1 + -1 + -1 + -3 + -3)。谢谢。

Expression                       |Evaluation                   | Current Values
                                 |                             | i=-1, j=-1
i++                              | -1                          | i= 0, j=-1
i++ + --i                        | -1 + -1                     | i=-1, j=-1
i++ + --i + i--                  | -1 + -1 + -1                | i=-2, j=-1
i++ + --i + i-- + j--            | -1 + -1 + -1 + -1           | i=-2, j=-2
i++ + --i + i-- + j-- + --i      | -1 + -1 + -1 + -1 + -3      | i=-3, j=-2
i++ + --i + i-- + j-- + --i + i; | -1 + -1 + -1 + -1 + -3 + -3 | i=-3, j=-2
答案

如果你做正确的递减而递增,你会得到如下:int k = -1 + (-1) + (-1) + (-1) + (-3) + (-3)等于-10

另一答案

我认为你缺少的变化“i”的价值

int j = --i;

在这里,我变为-1,则j = -1

所以,你开始与我= -1,J = -1值。

以上是关于在单行多个后缀和前缀操作的主要内容,如果未能解决你的问题,请参考以下文章

前缀表达式中缀表达式和后缀表达式

前缀中缀后缀表达式

前缀中缀后缀表达式

栈技巧之Note001-前缀和中缀及后缀表达式

前缀中缀后缀表达式

迅捷CAD工具箱:文字处理-文字前后缀