【问题标题】:what does x-- or x++ do here?x-- 或 x++ 在这里做什么?
【发布时间】:2011-05-05 12:47:02
【问题描述】:

对于大多数人来说,这是一个愚蠢的问题 - 我知道 - 但我是这里的初学者之一,我不明白为什么这里的输出是 12 这个 (x--) 对结果有什么影响?

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

【问题讨论】:

  • 我知道这个线程已经死了,但是 - 在 x=7 上放一个断点,逐行查看 x 和 y 的值

标签: java


【解决方案1】:

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。它还有前缀和后缀变体。

【讨论】:

    【解决方案2】:

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

    Conversley x++ 加/加一。

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

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

    【讨论】:

    • 如果 x-- 将 x 的值减少 1 x = 6 y= x*2 y=12 我知道了,但是其他 x=3 在这里做什么?
    • 将 x 赋值为 3。
    【解决方案3】:

    -- 是“减量”运算符。它只是意味着它所操作的变量(在本例中为 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).
    

    【讨论】:

    • 比 x 最好的答案之一。我猜这里的 3 是为了混淆学生,因为它是去年的考试 Q
    • 很高兴能帮上忙 :)。如果这是考试的一部分,则应该在课程中进行介绍。这通常是您在接触编程语言时首先学到的东西之一。
    【解决方案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
    

    --

    【讨论】:

    • 标题没有这样说:D。顺便说一句。
    • @aioobe,OP 询问了x-- x++,所以答案是有效的(但我看到 OP 专门询问了x--)。 :)
    【解决方案5】:

    例子:

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

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

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

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

    【讨论】:

      【解决方案6】:

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

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

      区别在于x++++x在语句/表达式中的使用方式:在++x中,x在被使用之前先增加1first,而在@987654333中使用@, x 被使用(在递增之前)首先,一旦使用,它就会递增 1。

      【讨论】:

        【解决方案7】:

        请注意,有时前置和后置增量运算符可能会产生意想不到的结果

        Why does this go into an infinite loop?

        还有什么作用:

        x[i]=i++ + 1;
        

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-05-16
          • 1970-01-01
          • 2019-07-02
          • 1970-01-01
          • 2016-04-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多