2014-01-22 4 views
-5

Когда я выполняю этот код:Разница между ++ переменной и переменной ++

public static void main(String[] args){ 
int h=0; 
int g=0; 
for(int j=0;j<10;j++){ 
    System.out.println(++g+" "+ h++); 
} 

на консоли распечаток:

1 0 

2 1 

3 2 

4 3 

5 4 

6 5 

7 6 

8 7 

9 8 

10 9 

Может кто-нибудь объяснить мне, почему ++g «растет быстрее, чем h++

+0

Есть ** много ** QA в SO на пост или pre increment. –

+0

Оба являются предварительным приращением и оба печатают одно и то же значение в каждой строке. – rgettman

+2

Код даже не соответствует вопросу ... –

ответ

1

Посмотрите на другие ответы, на которые указывает каждый ++ (сообщение или предварительное увеличение). ++ является «быстрее», потому что он увеличивает его до выполнения инструкции, что означает, что он начнется с большего числа.

0
?

Я предполагаю, что у вас есть опечатка в вашем заявлении о печати, поэтому я отвечу на ваш вопрос о ++ g и h ++.

++ g является предварительным приращением. h ++ - это пост-инкремент.

Предварительное приращение добавит 1 к значению g перед его использованием. Пост-инкремент добавит 1 к значению h после его использования.

0

Post Increment (variable ++): сначала выполните инструкцию, а затем увеличьте значение на единицу.
Pre Increment (++ variable): сначала увеличьте значение на единицу, затем выполните инструкцию.

Для этого System.out.println(++g+" "+ ++h); выход из

1 1 
2 2 
    . 
    . 
    . 

этот формат.

Смежные вопросы