2016-07-22 2 views
-1

Я делаю этот код, который отображает серию звездочек в строках, которые становятся меньше по одному каждый раз, когда вы сходите по строке. Он должен начинаться с 10 и останавливаться на 1 в самом нижнем ряду, но по какой-то причине мой код начинается с 1 сверху и растет больше по мере его снижения. Мне было интересно, как я могу перевернуть вывод, чтобы он выглядел как пример. Заранее спасибоКак я могу изменить этот код, чтобы выход был перевернут?

Пример:

********** 
********* 
******** 
******* 
****** 
***** 
**** 
*** 
** 
* 

Мой код:

public class RowsOfAsterisks { 

    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     for (int i = 1; i < 11; i++) 
      { 
       for (int x = 0; x < i; x++) 
       { 
        System.out.print("*"); 
       } 
       System.out.println(); 
      } 
    } 

} 
+0

Если вы использовали блок кода, звездочки бы показали –

ответ

0

Вы просто должны начать внешнюю петлю из 10 для достижения этой цели.

Я надеюсь, что приведенный ниже код поможет вам:

public class RowsOfAsterisks { 
    public static void main(String[] args) { 
     for (int i = 10; i > 0; i--) 
     { 
      for (int x = 0; x < i; x++) 
      { 
       System.out.print("*"); 
      } 
      System.out.println(); 
     } 
    } 
} 
+0

Прекрасно работает. Благодаря! – cpitt6477

0
int rows = 10; 

int columns = 10; 




for(int i = 0; i<rows; i++) 
{ 
    for(int j = 0; int j < columns; j++) 
    { 
     System.out.print("*"); 
    } 
    System.out.println(); 
    --columns; 

} 
2

Вы можете создать еще один метод для того, чтобы избежать два для даного

Проверьте, если он может помочь вам:

public class RowsOfAsterisks 
{ 
    public static String repeat(String str, int times) 
    { 
     return new String(new char[times]).replace("\0", str); 
    } 

    public static void main(String[] args) 
    { 
     for(int i = 10; i > 0; i--) 
     { 
     System.out.println(repeat("*", i)); 
     } 
    } 
} 
+0

Я не вижу другого класса в вашем коде. – Robert

+0

метод статический, его можно вызвать напрямую; если это то, что вы имели в виду Роберта. – SomeStudent

+1

Я имел в виду метод ... Спасибо за исправление ребята! :) – RBenito

0

Вы на правильном пути, вам просто нужно установить вложенный петлю следующим образом:

public static void main(String[] args) { 
    for (int i = 1; i < 11; i++) 
     { 
      for (int x = 11; x > i; x--) 
      { 
       System.out.print("*"); 
      } 
      System.out.println(); 
     } 
} 
Смежные вопросы