2015-02-17 4 views
-2

Я пытаюсь сделать мой код распечатаю Asterisk на изображении, как показано ниже. Asterisk выравниваются вправо, и у них есть пробелы под ними. Я не могу понять, как сделать это направо. Вот мой код:Asterisk в вложенных циклах, Java

public class Assn4 { 
    public static void main(String[] args) { 
     for (int i = 0; i <= 3; i++) { 
      for (int j = 0; j <= i; j++) { 
       System.out.print("*"); 
      } 

      for (int x = 0; x <= 1; x++) { 
       System.out.println(" "); 
      } 

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

enter image description here

+0

Это смешно цикл: 'для (Int х = 0, х <= 1; х ++) {' – John3136

ответ

1

Матричные проблемы действительно полезно, чтобы понять петли ..

Понимание вашей проблемы:

1) Первое, печать звезды на конечных Это означает, что ваш первый цикл должен быть в порядке убывания

для (int i = 7; i> = 0; i + = i-2)

2) Печать звезда в увеличении Это означает, что заказ запасных ваш второй цикл должен быть в порядке возрастания

для (Int J = 0, J = 7 <; j ++)

Полный код:

for(int i =7;i>=0; i=i-2){ // i=i-2 because *s are getting incremented by 2 
    for(int j =0;j<=7; j++){ 
     if(j>=i){ // if j >= i then print * else space(" ") 
      System.out.print("*"); 
     } 
     else{ 
      System.out.print(" "); 
     } 
    } 
    System.out.println();// a new line just after printing *s 

} 
0

Начиная петли с 1 иногда может помочь вам визуализировать лучше.

int stopAt = 7; 
for (int i = 1; i <= stopAt ; i += 2) { 
    for (int j = 1; j <= stopAt; j++) { 
     System.out.print(j <= stopAt - i ? " " : "*"); 
    } 
    System.out.println(); 
} 

Обратите внимание, как каждая строка печатает нечетное число * s заканчивается в соответствии с 7. Итак, вы начинаете с i на 1 и пройти через 3 1+2, 5 3+2, а затем .

Вложенная петля for должна печатать 7 символов, чтобы убедиться, что * s выглядят правильно. Таким образом, цикл работает от 1 до 7.

0

Вот полный код:

for(int i = 0; i < 8; i++){ 
     if(i%2 != 0){ 
      for(int x = 0; x < i; x++){ 
       System.out.print("*"); 
      } 
     }else{ 
      System.out.println(); 
     } 
    } 
Смежные вопросы