Gå til innhold

[Løst] Java-oppgave: printSquare (Building Java Programs)


Anbefalte innlegg

Har vridd hodet mitt rundt, men får ikke til exercise 4 fra boken Building Java Programs.

 

 

4. Write a method called printSquare that accepts a minimum and maximum integer and prints a square of lines of

increasing numbers. The first line should start with the minimum, and each line that follows should start with the

next-higher number. The sequence of numbers on a line wraps back to the minimum after it hits the maximum.

 

For example, the call

printSquare(3, 7);

 

 

should produce the following output:

34567

45673

56734

67345

73456

Lenke til kommentar
Videoannonse
Annonse

Noe sånt?

 

private static void printSquare(int low, int high) {
 int count = high - low + 1;
 for (int i = 0; i < count; i++) {
   for (int j = i; j < count+i; j++) {
     System.out.print(low + j % count);
   }
   System.out.println();
 }
}

Lenke til kommentar

Hvis vi tar eksempelet fra oppgaven din, så kalles funksjonen slik:

printSquare(3, 7);

- "count" regnes ut og blir 5 (antall elementer per linje / antall linjer)

- den ytre løkka går "count" ganger (1 gang for hver linje), det samme gjør den indre løkka (1 gang for hvert element på linja)

- "j % count" er resten av heltalls-divisjonen "j / count", så når den indre løkka kjøres for i = 0 vil "j % count" være lik j, siden j er 0, 1, 2, 3 og 4. "low" + disse verdiene gir verdiene 3, 4, 5, 6 og 7. For i = 1 vil j være 1, 2, 3, 4 og 5, som vil gir "j % count" = 1, 2, 3, 4, 0. Legger vi til "low" får vi verdiene 4, 5, 6, 7 og 3.

 

Håper det ble litt forståelig :-)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...