justLearning
justLearning

Reputation: 187

Building a Simple Graph in Java

I am trying to build a program that prints out a simple graph. The goal of the program is to have a print out of user inputs with the corresponding number of asterisks adjacent to the number.

The problem is that I am having trouble adding asterisks to the program.

Here is the current code:

package exercise4.pkg16;

import java.util.Scanner;

public class Exercise416 {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in); 

        int numberCounter = 0;
        int number1;
        int number2;
        int number3;
        int number4;
        int number5;

        System.out.print("Please enter a number between 1 and 30: ");
        number1 = input.nextInt();

        System.out.print("Please enter a number between 1 and 30: ");
        number2 = input.nextInt();

        System.out.print("Please enter a number between 1 and 30: ");
        number3 = input.nextInt();

        System.out.print("Please enter a number between 1 and 30: ");
        number4 = input.nextInt();

        System.out.print("Please enter a number between 1 and 30: ");
        number5 = input.nextInt();

        while (numberCounter <= 5)
        {
            numberCounter = numberCounter +1;      
        }

        System.out.printf("%d%n", number1);
        System.out.printf("%d%n", number2);
        System.out.printf("%d%n", number3);
        System.out.printf("%d%n", number4);
        System.out.printf("%d%n", number5);
    }
}

This is the desired outcome:

1* 
2** 
10**********
7*******
5*****

Is there anyone who could help me?

Thanks.

Upvotes: 1

Views: 185

Answers (1)

Jordi Castilla
Jordi Castilla

Reputation: 26961

First, use an array to store results and the while loop to reuse some code:

int[] numbers = new int[5];

while (numberCounter <= 5) {
    System.out.print("Please enter a number between 1 and 30: ");
    numbers[numberCounter] = input.nextInt();
    numberCounter ++;
}

After, you must iterate over results:

String asterisk = "*";
for (int i = 0; i < numbers.lenght; i++){
    System.out.println(numbers[i] + StringUtils.repeat(asterisk, numbers[i]));
}

NOTE: StringUtils.repeat is same as this for-loop:

for(int c = 0; i < numbers[i]; i++)
    System.out.print(asterisk);

Upvotes: 1

Related Questions