2012-06-07 2 views
0

Я хочу нарисовать треугольник со звездами, как показано ниже, используя цикл, но я действительно не знаю, как это сделать? Triangle будет следующим:Как я могу напечатать треугольник с помощью «*», используя для цикла в java?

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

и так далее. Может ли кто-нибудь помочь мне?

public class Project1 { 
    public static void main (String[] args){ 
     int c, d, e; 
     for (c = 1 ; c <= 8 ; c++){ 
      for (d = 1 ; d <= c ; d++){ 
       System.out.print ("*"); 
      } 
      System.out.println(""); 
     } 

     for (e = 1 ; e <= 4 ; e++){ 
      System.out.println ("***"); 
     } 
    } 
} 

Это то, что я нашел из Интернета, но я не понял, почему он использует две петли. (Я понял, один используется для построения стебля.)

+2

Вы должны опубликовать свой лучший/последнюю попытку, прежде чем просить о помощи. – dasblinkenlight

+0

@Berk Elmas Подсказка: для этого требуется 2 петли. Но почему это требует двух циклов, выясните. – Mahesh

+0

Это действительно не моя домашняя работа. Сейчас я ученик средней школы, и все, что я хочу, - это изучить Java самостоятельно. Доверьтесь мне ! –

ответ

4
public static void main(String[] args) 
{ 

    StringBuilder stars = new StringBuilder(); 

    for(int i = 0; i <= 10; i++) 
    { 
      stars.append("*"); 
      System.out.println(stars); 
    } 

} 

или, альтернативно, с помощью вложенных циклов: (Это то, что упражнение было действительно пытается заставить вас сделать)

public static void main(String[] args) 
{ 
    for(int i = 0; i <= 10; i++) 
    { 
     for(int j=0; j<=i; j++) 
     { 
      System.out.print("*"); 
     } 
     System.out.print("\n"); 
    } 
} 
+2

+1 Умный способ использования конкатенации строк. Я никогда не думал об этом :( – Mahesh

+2

@Mahesh На самом деле, не настолько умный. Такое сочетание было бы лучше использовано строковым сборщиком. –

2

You потребуются два цикла for; один для печати строки, а другой - для печати символов в строке. Номер текущей строки может использоваться для печати определенного количества звезд.

Использование System.out.print("*") для печати без добавления новой строки в конце второго цикла сделать System.out.println()

Я оставлю реализацию петель, как упражнение, вот синтаксис: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/for.html

+0

theres лучшие реализации. – Kevin

+2

Реализация Alex W, возможно, более эффективна, но поскольку это довольно основной вопрос, который, как мне кажется, может быть полезен у ученика, чтобы узнать, как использовать вложенные циклы. – Joost

1

Просто прокомментировать ваш интернет-нашел код ...

  1. в for петли всегда должна начинаться с 0, если у вас нет особых причин, чтобы начать с 1. Его хорошая привычка практиковать начиная с 0 для всего, так как это поможет вам, когда дело доходит до использования java arrays.
  2. Петли 2 for внутри друг друга ... Замкнутый контур просто контролирует количество линий в треугольнике (в этом случае 8). Внутренний цикл записывает количество звезд для этой линии. Это не лучший способ добиться результата, но он будет работать правильно.
  3. Петля for внизу изображает звезды, которые выглядят как ствол дерева.

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

0

Это может дать вам решение возникшего у вас вопроса.

class Seven 
{ 
public static void main(String arg[]) 
{ 
for(int i=0;i<=8;i++) 
{ 
for(int j=8;j>=i;j--) 
{ 
System.out.print(" "); 
} 
for(int k=1;k<=(2*i+1);k++) 
{ 
System.out.print("*"); 
} 
System.out.println("\n"); 
} 
} 
} 
0
import java.util.Scanner; 
public class apple{ 
public static void main(String[] args){ 

int c,r; 
for(c=1; c<=10; c++){ 
for(r=1; r<=c; r++){ 
System.out.print("*"); 
} 
System.out.println(); 
} 
} 
0
public class StarA { 

public static void main(String[] args) { 

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

     } 
     System.out.println(); 
    } 

    } 
} 
+0

. Не могли бы вы немного подробнее рассказать о своем ответе? – Qix

0
  import java.util.*; 

      class StarForloop 
{ 
      public static void main(String arg[]) 
    { 
      Scanner ob=new Scanner(System.in); //getting input 
      System.out.println("Enter any NO"); 

      int count=ob.nextInt(); 
     String ab="*"; // initialize string variable 

      for(int i=1; i<=count; i++) 
     { 

      ab=ab+"*"; // here you add one another string 
      System.out.println(ab); 


     }   
    } 
} 
+0

Код отвечает только на arent, так как он не предоставляет много информации для будущих читателей. Пожалуйста, предоставьте некоторое объяснение тому, что у вас есть написано – WhatsThePoint

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