Wyświetlanie zmiennej ilość gwiazdek

Wyświetlanie zmiennej ilość gwiazdek
VI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 43
0

Mam takie zadanie, napisz aplikacje która odczyta piec liczb z przedziału od 1 do 30. Dla każdej odczytanej liczby program powinien wyświetlić taka sama liczbę gwiazdek tuz obok siebie. Wyświetl gwiazdki po wczytaniu wszystkich liczb.

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

        Scanner input = new Scanner(System.in);

        int l1,l2,l3,l4,l5;

        l1 = input.nextInt();
        l2 = input.nextInt();
        l3 = input.nextInt();
        l4 = input.nextInt();
        l5 = input.nextInt();


        for(int i = 0; i<l1; i++) {
            System.out.print("*");
        }
        System.out.println();
        for(int i = 0; i<l2; i++) {
            System.out.print("*");
        }
        System.out.println();
        for(int i = 0; i<l3; i++) {
            System.out.print("*");
        }
        System.out.println();
        for(int i = 0; i<l4; i++) {
            System.out.print("*");
        }
        System.out.println();
        for(int i = 0; i<l5; i++) {
            System.out.print("*");
        }

Na szybko skleiłem coś takiego, ale wiem ze nie wygląda to zbyt korzystnie, czy ktoś mógłby mi dać jakaś wskazówkę jak mogę skrócić ten kod, próbowałem zagnieżdżać for, ale nie wychodziło mi. Bo za każdym razem gwiazdki wyświetlały się zaraz po wczytaniu pojedynczej wartości.

p_agon
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: 96-230
  • Postów: 952
4

W te strone kolego :P

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

Jezeli Cie ten kod rozsierdzil to: https://www.radioart.com/

PR
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 225
2

I poczytaj trochę o clean code, te zmienne wyglądają jak liczby :)
int l1,l2,l3,l4,l5; (vs 11,12,13,14,15)

Kopiuj
l1 = input.nextInt();
l2 = input.nextInt();
l3 = input.nextInt();
l4 = input.nextInt();
l5 = input.nextInt();

to możesz też wrzucić w pętle, a liczby do tablicy/listy

VI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 43
0

@Productionserver: Tak tylko zapomniałem dodać że nie mogę uzywać tablicy, przynajmniej według materiału z książki.

VI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 43
1

@p_agon: haha, dzięki. Takie proste a takie trudne zarazem.

damianem
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 205
2

Zawsze można streamami pokombinować :)

Kopiuj
try (Scanner input = new Scanner(System.in)) {
    Stream.generate(input::nextInt)
        .limit(5)
        .map(number -> Stream.generate(() -> "*").limit(number).collect(Collectors.joining()))
        .collect(Collectors.toList())
        .forEach(System.out::println);
}

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.