2016-11-11 10 views
0

У меня есть довольно прямой вопрос. В приведенной ниже программе, почему я не увеличиваю до 1 в первой итерации цикла for? Мой компилятор показывает, что для первого запуска j не меньше i, потому что они оба 0. Спасибо!Увеличение в пределах вложенной петли

int i; 
    for (i = 0; i < 5; i++) { 
    int j = 0; 
    while (j < i) { 
     System.out.print(j + " "); 
     j++; 
+0

Почему 'i' быть увеличен в течение первой итерации? Единственный раз, когда вы увеличиваете 'i', находится в конце первой итерации. – Carcigenicate

+0

В первой итерации цикла, 'i = 0', как указано в исходном состоянии цикла for. – iNan

+0

Если вы хотите начать с 1, инициализируйте i как 1, иначе он будет только увеличиваться после завершения первого цикла! – JFed8

ответ

2

Значение i будет 0 для первой итерации и 1 для второго. Возьмем следующее:

for (int i = 0; i < 5; i++) { 
    // loop code 
} 

выше цикл является лишь синтаксический сахар для:

{ 
    int i = 0; 
    while (i < 5) { 
     // loop code 
     i++; 
    } 
} 

Обратите внимание, что внешние брекеты не показать, что после того, как цикл выходит переменная i больше не находится в объем.

+0

@flakes Хорошая точка. Добавление фигурных скобок вокруг всего выражения для отображения области видимости. –

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

  • Нет связанных вопросов^_^