2014-10-24 3 views
-1

У меня есть небольшая проблема с пониманием чего-то о цикле for. В приведенном ниже коде. Не следует ли распечатывать две звезды, затем разрывать линию, затем две звезды и разрывы строк и т. Д.? Поскольку код сначала проверяет, меньше ли «i» или равно 5, если он не проверяет, является ли «j» меньше или равно 10. Затем он печатает «*», а затем прерывает строку.Понимание цикла for

НО, похоже, он сначала проверяет первое условие, затем пропускает до println("*"), а затем пропускает разрыв строки. Почему это пропустить?

public class Printing { 
    public static void main(String[] args){ 
     for (int i = 1; i <= 5; i++){ 
      for (int j = 1; j <= 10; j++) 
       System.out.print("*"); 
      System.out.println(); 
     } 
    } 
} 
+4

Вы бы поняли это лучше, если бы вы отделили код. –

+3

И положить открывающие и закрывающие скобы для каждой петли. – sp00m

+0

Если вы хотите 2 запуска, то измените j <= 10 на j <= 2 – StackFlowed

ответ

0

Ваша петля для вставки. Это означает, что второй для цикла внутри первый. Поэтому, если условие для первого не пройдет, второе не будет работать.

1

Ваш вложенный цикл for напечатает 10 последовательностей "*".

Ваш внешний цикл for повторяет ваш вложенный цикл for с последующей печатью разрыва строки 5 раз.

Проблема, которая может возникнуть с фигурными скобками, не окружающими ваш вложенный цикл for.

Как таковой, "*" печатаются 5 * 10 раз, но разрыв строки печатаются только 5 раз, потому что она относится к области применения внешнейfor петли.

0

«код сначала проверяет, равен ли« i »меньше или равен 5, если не проверяет, равен ли« j »меньше или равно 10.»

№ Если i не меньше 5, весь кусок цикла for не будет выполняться, и поскольку внутренний цикл находится внутри тела внешнего, он также не будет выполнен.

Ваш код напечатает 5 строк, каждый из которых имеет 10 *.

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