Gå til innhold

[Løst] Hult rektangel i java


Anbefalte innlegg

Hei folkens,

 

Jeg holder på med en innlevering hvor jeg skal lage et hult rektangel. Hjørnene skal være: " * " , sidene:" | " og topp og bunn skal være " - ".

Så langt har jeg klart hjørnene og sidene, men sliter enda med topp og bunn. 

 

så det jeg har nå er:                     mens jeg egentlig skal:

*******                                                             *-----*

 |         |                                                            |        |

 |         |                                                            |        |

*******                                                             *-----*

 

Det er også en deloppgave at man skal få frem forbokstaven i navnet sitt i midten av figuren.

 

Noen tips til hvordan jeg skal gå frem her? 

 

- Whiskey^

 

-------------------------------------------------------------

Koden : 

 

import java.util.Scanner;

 
class HultRektangel{
  public static void main(String[]args){
  
    Scanner tastatur = new Scanner(System.in);
    System.out.print("Gi høyde på rektangel");
    int høyde = tastatur.nextInt();
    
    System.out.print("Gi bredde på rektangel");
    int bredde = tastatur.nextInt();
    
    for(int j=1; j<=høyde; j++){
      for(int i=1; i<=bredde; i++){
      
        if(j==1|| j==høyde ){
          System.out.print("*");  
        }
        else if(i==1 || i==høyde){
          System.out.print("|");
        }
        else{
          System.out.print(" ");
        }
      }
          System.out.println();
    }
  }
}
Lenke til kommentar
Videoannonse
Annonse

Dette er lettere å gjøre om du bruker en todimensjonal liste og setter alle elementene først, for så å printe ut til slutt. 

Dersom du absolutt vil gjøre det på denne måten, må du sjekke om det er et hjørne først:

if ((i == 1 && j == 1) || 
    (i == 1 && j == høyde) ||
    (i == bredde && j == 1) ||
    (i == bredde && j == høyde)) {
    System.out.print("*"); 
} else if (j == 1 || j == høyde) {
    System.out.print("-"); 
} else if (i==1 || i==høyde) {
    System.out.print("|");
}


 

 

 

 

Lenke til kommentar

Det er flere måter å gjøre det på. Har du lært metoder (altså funksjoner)?

 

1. Print ut en stjerne.

2. Print ut en "-" bredde-2 ganger

3. Print ut en stjerne.

 

4. repeter høyde-2 ganger:

4.1 print ut en |

4.2 print ut mellomrom bredde-2 ganger

4.3 print ut en |

 

5. Gjør steg 1-3 igjen.

 

Lag gjerne en metode som gjør steg 1-3, så slipper du å skrive det samme to ganger.

Endret av Emancipate
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...