2015-03-18 2 views
-1
int a=0; 

    for (a=0; a++<=10;) { 
     System.out.print(a+ " "); 
    } 

Output: 1 2 3 4 5 6 7 8 9 10 11 

Почему он печатает 11, когда цикл называется конец, когда переменная «а» достигает 10 также, почему он не начинается с 0, как используется оператор постфикс?Вопросы о Java петлями и операторов пост/префиксов

int a=3, b=4; 

    int c = a + b++; 

    System.out.println(+c); 

Output: 7 

Почему оператор приращения postfix не добавляет значение в переменную 'b'? Не должно ли выход быть «8»?

ответ

2

a++ средства используют значение для a, а затем добавить 1.

Таким образом, первый из них будет считывать значение a как 10, а затем добавить 1, так что он выводит значение 11.

The второй - b как 4, поэтому c = 3 + 4 = 7. b будет 5 после добавления завершено.

+0

если это правильно, то почему серия не начинается с 0? – HQuser

+0

@ user2015669: Потому что к тому времени, когда вы используете его в своем 'println', он * уже * был увеличен. Оператор находится в состоянии 'for', поэтому условие' for' использует старое значение. Затем тело 'for' выполняется с' a', имеющим новое значение. –

+0

Когда условие проверяется в части 'for', a = 0. Но после того, как он был проверен, он был увеличен до a = 1. Поэтому он будет печатать '1', а не' 0'. – mmking