x--或x ++在这里做什么?

时间:2010-11-05 10:07:10

标签: java

对于大多数人来说这是一个愚蠢的问题 - 我知道 - 但我是这里的初学者之一,我无法理解为什么这里的输出是12(x--)对结果做了什么?

int x, y;
x = 7;
x-- ;
y = x * 2;
x = 3;

7 个答案:

答案 0 :(得分:13)

x--会将x的值递减1.它是一个后缀递减运算符,--x是一个前缀递减运算符。

那么,这里发生了什么?

 
int x, y;    //initialize x and y
x = 7;       //set x to value 7
x--;         //x is decremented by 1, so it becomes 6
y = x * 2;   //y becomes 6*2, therefore y becomes 12
x = 3;       //x becomes 3

通过类比,++会将值增加1.它还有一个前缀和后缀变体。

答案 1 :(得分:7)

x--将x的值减1 /减1。

Conversley x++增加/增加一个。

加号或减号可以在变量名称之前(--x)或之后(x--),前缀 postfix 。如果在表达式中使用,前缀将在执行操作后返回值,后缀将在执行操作之前返回值。

int x = 0;
int y = 0;
y = ++x; // y=1, x=1

int x = 0;
int y = 0;
y = x++;// y=0, x=1

答案 2 :(得分:5)

--是'减量'运算符。它只是意味着它操作的变量(在这种情况下是x变量)得到的减1。

基本上它是:

的简写
x = x - 1;

那么代码的作用是什么:

int x,y ; # Define two variables that will hold an integer
x=7;      # Set variable X to value 7
x-- ;     # Decrement x by one : so x equals 7 - 1 = 6
y= x * 2; # Multiply x by two and set the result to the y variable: 6 times 2 equals 12
x=3;      # set x to value 3 (I do not know why this is here).

答案 3 :(得分:4)

在评估x之后, x ++递增x。 ++ x在评估x之前递增x。

 int x = 0;
 print(++x); // prints 1
 print(x); // prints 1

 int y = 0;
 print(y++); // prints 0
 print(y); // prints 1

同样适用于 -

答案 4 :(得分:1)

示例:

x = 7;
y = --x; /* prefix -- */

这里y = 6( - x将x减1)

y = x--; /* postfix -- */

这里y = 6(x--首先使用表达式中x的值,然后将x减1)

答案 5 :(得分:1)

x++基本上是x = x + 1(同样适用于++x)。 x增加1。

x--基本上是x = x - 1(同样适用于--x)。 x递减1。

不同之处在于语句/表达式中x++++x的使用方式:在++x中,x增加1 第一x++中使用之前,x使用(在增量之前)第一次,一旦使用它,它会增加1。

答案 6 :(得分:0)

只是警示,有时前后增量运算符可能会产生意外结果

Why does this go into an infinite loop?

以及:

x[i]=i++ + 1;

DO

在这里阅读: http://www.angelikalanger.com/Articles/VSJ/SequencePoints/SequencePoints.html