2013-06-07 2 views
-1

Я использую этот для цикла:Как работают условия цикла java?

ArrayList<String> buttonTitles = new ArrayList<String>(); 
for (int i = 0; i == 3; i++) { 
    out.println("Looping!"); 
    buttonTitles.add(String.format("Button %d", i)); 
} 

Однако код внутри цикла никогда не выполняется. Что не так с моим заявлением?

Обновление: спасибо за ответы, кажется, что переход на новый язык может заставить вас пропустить некоторые основы! :)

+4

Запись «i == 3» означает «цикл while i is 3» not «loop until i is 3» –

+0

Ваша петля похожа на запись 'int i = 0; while (i == 3) {/ * сделать что-то */i ++; } 'Если' i = 0', то 'i == 3' должно быть ложным, и цикл не будет запущен. –

ответ

5

Цикл продолжается только при условии, что условие истинно. В вашем случае это условие i == 3, которое никогда не является истинным, так как ваш цикл не продолжается достаточно далеко, чтобы добраться до него.

Я предполагаю, что вы хотите:

ArrayList<String> buttonTitles = new ArrayList<String>(); 
for (int i = 0; i <= 3; i++) { 
    out.println("Looping!"); 
    buttonTitles.add(String.format("Button %d", i)); 
} 
1

Это

for (int i = 0; i < 3; i++) // Loops from 0 to 2 (inclusive) 

ИЛИ

for (int i = 0; i <= 3; i++) // Loops from 0 to 3 (inclusive) 

Ваш оригинальный Виль петля никогда не работает, потому что изначально i равно 0. Ваше второе условие в вашем цикле for указывает, что i должен равняться 3, который никогда туда не попадает.

Цикл for продолжается, пока второе условие всегда остается истинным (что не происходит, когда i начинается с 0).

0

Вторая часть для цикла является условием. В основном говорят об этом, пока условие по-прежнему сохраняется. Поскольку i инициализируется до 0, i == 3 никогда не является истинным. i < 3, по-видимому, является правильным условием.

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