# While loop triangle problem

• 03-02-2009, 05:52 AM
cmb3587
While loop triangle problem
My task is to take a user input that ranges from 1-50 and use it to create a triangle of asterisks. I.E:

Enter number: 5

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

I know that i need 2 seperate embedded while loops and that the first one creates a row of asterisks equal to the row number until you reach the input and the second subtracts 1 asterisk until you reach 0.

I can not figure out what is wrong with my code to do this...can someone help please.

Code:

```import java.util.Scanner; public class triangle {         public static void main(String[] args) {                 Scanner kbd = new Scanner(System.in);                 String asterisk;                 System.out.print("Enter a triangle size (between 1 and 50): ");                 int number = kbd.nextInt();                 asterisk = "*";                 int length = asterisk.length();                 int lines = 0;                 while (lines <= number){                         System.out.println(asterisk);                         lines++;                         while (length <= number) {                                 System.out.print(asterisk);                                 length++;                         }                 }                 while (lines > 0 ) {                         System.out.println(asterisk);                         lines--;                         while (length <= number) {                                 System.out.print(asterisk);                                 length++;                         }                 }                         } }```
• 03-02-2009, 07:08 AM
azzaiel
what is the difference of inputs from 1 - 50?
• 03-02-2009, 07:10 AM
azzaiel
correct me if im wrong

input: 3

*
**
***
**
*

input 2

*
**
*

input 4

*
**
***
****
***
**
*
• 03-02-2009, 07:58 AM
azzaiel
:) try this

Code:

``` public static void main(String[] args) {                 Scanner kbd = new Scanner(System.in);                 final String ASTRTISK = "*";                 System.out.print("Enter a triangle size (between 1 and 50): ");                 int number = kbd.nextInt();                 int lines = 1;                 final int lenght = (number * 2) - 1;                 int loops = 1;                                 while (lines <= lenght) {                                 for (int index = loops; index > 0; index--) {                                 System.out.print(ASTRTISK);                         }                         System.out.println("");                                                 if (lines >= number ) {                                 loops -= 1;                         } else {                                 loops += 1;                         }                                                 lines += 1;                        }         }```
• 03-02-2009, 01:53 PM
CJSLMAN
azziel... I know you mean good, but it's not a good idea to give complete working code to the OPs'... too much temptation to cut & paste & forget. There's no learning process. It would be much better to give hints, links, pseudo code, explanations, exples and code snippets.

Thanks,
CJSL