Почему строки печати в цикле не печатаются

#java #printing

#java #печать

Вопрос:

Приведенный ниже код ничего не выводит. Как мне это исправить?

проблемы с пакетом 2;

открытый класс FigureDraw {

 public static void main(String[] args) {
    final int N = 5;
    for (int line = 1; line <= N; line  )
    {
        for (int i = 1; i <-16; i-=4)
        {
            System.out.print("/");
        }
        for (int i = 1; i>32; i= 1)
        {
            System.out.print("*");
        }
        for (int i =1; i<-1; i-=4)
        {
            System.out.print("\");
        }
    }


}
 

}

Комментарии:

1. Ни одно из выражений завершения не является допустимым после выражения инициализации docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

2. Ваше любое из условий внутреннего цикла никогда не становится ИСТИННЫМ.

3. Он никогда ничего не напечатает, все условия, записанные в цикле for, никогда не будут выполнены, следовательно, он никогда не входит в цикл for и не выполняет строки, записанные внутри цикла for , например ` for (int i = 1; i <-16; i-=4) { System.out.print(«/»); }` когда i равно 1, оно всегда больше -16, нет смысла заходить внутрь цикла и уменьшать значение i на 4.

Ответ №1:

Цикл for выполняется, когда выполняется определенное условие, и прекращает выполнение, когда оно больше не выполняется. Условие вашего внешнего цикла истинно (1 меньше или равно 5). Однако другие ваши циклы не печатаются, потому что ни одно из условий не выполняется. Давайте рассмотрим условия внутренних циклов одно за другим:

Первый цикл: не выполняется, потому что 1 не меньше -16. Второй цикл: не выполняется, потому что 1 не больше 32. Третий цикл: не выполняется, потому что 1 не меньше -1.

Давайте немного разберем цикл for . Первая часть — int i = 1; это устанавливает целое число i как 1. i<-16; Другими словами, вторая часть означает «Если значение i меньше -16, запустите следующий код». И последняя часть i-=4 означает, что каждый раз, когда выполняется следующий код, вычитайте 4 из i.

Однако ни одно из ваших условий не выполняется, поэтому операторы внутри не выполняются.

Попробуйте сделать это:

 for(int i = 1; i > -16; i-=4) {
    //Your statements here.
 }
 

Опять же, инструкции в циклах for будут выполняться ТОЛЬКО при выполнении условий true .