2015-10-04 4 views
-2

Так что мне нужно отображать треугольники, используя для циклов .. по какой-то причине код компилируется, но когда я запускаю программу, ничего не происходит. Цикл бесполезен, но я должен отображать это использование для циклов как часть моего упражнения.Использование методов в цикле for

public class TrianglesUsingLoops { 
    public static void main(String[] args) {  
     for (int n = 0;n>=2;n++){ 
      upperTriangle(); 
      lowerTriangle(); 
     } 
    } 
    public static void upperTriangle(){ 
     System.out.println(" * "); 
     System.out.println(" *** "); 
     System.out.println("*****"); 
    } 
    public static void lowerTriangle(){ 
     System.out.println("*****"); 
     System.out.println(" *** "); 
     System.out.println(" * "); 
    } 
} 
+3

I thi nk вы означали 'n <= 2' вместо' n> = 2' в вашем цикле. – Tunaki

+4

По этой причине ваша петля выполняет нулевые итерации, потому что условие завершения выполняется в начале. –

ответ

1

Причина это ничего не displaing потому, что метод отображения находится внутри цикла и statments в цикле никогда не запускается на выполнение.

Линия: for (int n = 0;n>=2;n++){ говорит для n=0, когда n>=2. Это никогда не происходит, потому что начальное значение n равно 0 и n никогда не больше или равно 2, поэтому вызов метода для рисования треугольника никогда не выполняется.

Если вы действительно хотите использовать цикл, вы можете изменить его на что-то вроде:

for (int n = 0; n < 2; n++){ 
... 
... 
... 

Таким образом, цикл выполняется по крайней мере один раз.

Надеюсь, это поможет.

0

Проследим n: Инициализация: n = 0; условие: 0> = 2: нет: разрыв

0

в цикле он будет работать до тех пор, пока условие является TRUE, он не остановится на первом FALSE.

Это не условие, которое остановит цикл, когда это правда.

Это будет работать 5 раз:

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

0 < 5 = true 
1 < 5 = true 
2 < 5 = true 
3 < 5 = true 
4 < 5 = true 
5 < 5 = false 

Это не будет работать:

for(int i = 0; i > 5; i++) 

0 > 5 = false 

И это создаст бесконечный цикл:

for(int i = 2; i > 1; i++) 

i всегда будет больше чем 1.

+1

Последний пример также не будет запущен, – Andreas

+0

Извините, исправил его. – x13

+0

'i' будет меньше 1 на итерации после достижения MAX_VALUE. – Andreas

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