Reputation: 187
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
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