Существует ли различие между x ++ и ++ x в Java?

Чтобы завершить различные предлагаемые варианты, вот еще одна: команда daemon в GNU / Linux, о которой вы можете прочитать здесь: http://libslack.org/daemon/manpages/daemon. 1.html . (извиняюсь, если это уже упоминалось в одном из комментариев выше).

105
задан Jonik 7 July 2009 в 21:24
поделиться

8 ответов

++ x называется преинкрементом, а x ++ - постинкрементом.

int x = 5, y = 5;

System.out.println(++x); // outputs 6
System.out.println(x); // outputs 6

System.out.println(y++); // outputs 5
System.out.println(y); // outputs 6
279
ответ дан 24 November 2019 в 03:53
поделиться

Да,

int x=5;
System.out.println(++x);

напечатает 6 , а

int x=5;
System.out.println(x++);

напечатает 5 .

10
ответ дан 24 November 2019 в 03:53
поделиться

Если это похоже на многие другие языки, вы можете попробовать простую попытку:

i = 0;
if (0 == i++) // if true, increment happened after equality check
if (2 == ++i) // if true, increment happened before equality check

Если вышеперечисленное не происходит, они могут быть эквивалентными

2
ответ дан 24 November 2019 в 03:53
поделиться

Да, при использовании ++ X в выражении будет использоваться X + 1. При использовании X ++ X будет использоваться в выражении, а X будет увеличиваться только после того, как выражение будет оценено.

Таким образом, если X = 9, при использовании ++ X будет использоваться значение 10, иначе значение 9.

2
ответ дан 24 November 2019 в 03:53
поделиться

Они известны как постфиксные и префиксные операторы. В обоих случаях к переменной добавляется 1, но результат выполнения оператора отличается.

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

int x = 0;
int y = 0;
y = x++;            // result: y=0, x=1
16
ответ дан 24 November 2019 в 03:53
поделиться

Да, возвращаемое значение является значением после и до увеличения, соответственно.

class Foo {
    public static void main(String args[]) {
        int x = 1;
        int a = x++;
        System.out.println("a is now " + a);
        x = 1;
        a = ++x;
        System.out.println("a is now " + a);
    }
}

$ java Foo
a is now 1
a is now 2
2
ответ дан 24 November 2019 в 03:53
поделиться

да

++ x увеличивает значение x, а затем возвращает x
x ++ возвращает значение x, а затем увеличивает

пример:

x=0;
a=++x;
b=x++;

после запуска кода и a, и b будут равны 1, но x будет равно 2.

63
ответ дан 24 November 2019 в 03:53
поделиться

Да.

public class IncrementTest extends TestCase {

    public void testPreIncrement() throws Exception {
        int i = 0;
        int j = i++;
        assertEquals(0, j);
        assertEquals(1, i);
    }

    public void testPostIncrement() throws Exception {
        int i = 0;
        int j = ++i;
        assertEquals(1, j);
        assertEquals(1, i);
    }
}
3
ответ дан 24 November 2019 в 03:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: