Avatar billede backupmand Nybegynder
20. oktober 2000 - 14:45 Der er 6 kommentarer og
1 løsning

Hjælp til for-løkke

please hjælp. Jeg har lavet en applikation,
men kan ikke få den til at udskrive nogle
stjerne således:
  *
  ***
*****
  ***
  *
Min kode:

class Stjerner2
{

    public void d()
    {
    System.out.println (\"opgave d:\");
    System.out.println ();
   
    for (int y=0; y<=10; y++)   
        {
            for (int i=5;i>=y;i--)
            {
              System.out.print(\" \");
           
            }
            System.out.print(\"*\");
           
            for (int i=y;i>=y;i++)
            {
              System.out.print(\" \");
     
            }
        System.out.println();
       
        }
    }
}   
class Koer
{
  public static void main (String [] args) {
    Stjerner2 st = new Stjerner2();
    st.d();
  }
}
   
Jeg ved godt ovenst.- ikke er rigtigt
\'
tak for hjælp!
Avatar billede mtilsted Nybegynder
21. oktober 2000 - 01:00 #1
Hvad med bare at bruge 5 printf kald -)
Avatar billede backupmand Nybegynder
21. oktober 2000 - 12:35 #2
C\'mon, man burde kunne lave dette vha for-løkker
der er ingen absoulut ingen udfordring i at
skrive
System.out.println (\"  * \");
System.out.println (\"  ***\");

osv... det er nærmere en opstilling af for-løkker
opgaver, mere end det er hvad den skal printe
ud...
Avatar billede codemon Nybegynder
21. oktober 2000 - 19:40 #3
Denne class Stjerner2 gør hvad du vil have den til.

Husk at midterste parameter i en for-løkke betyder \"så længe at...\" du havde vendt < - tegnet forkert nogle steder så du fik en uendelig løkke.

class Stjerner2
{

    public void d()
    {
    System.out.println (\"opgave d:\");
    System.out.println ();
   
    final int ANTAL_FIGURER = 10;
    // mellemrum først i hver linie
    int melrum1 = 1, melrum2 = 1, melrum3 = 0, melrum4 = 1, melrum5 = 1;
    // Antal stjerner i hver linie
    int antalS1 = 1, antalS2 = 3, antalS3 = 5, antalS4 = 3, antalS5 = 1;
    int i;
   
    for (int y=0; y < ANTAL_FIGURER; y++)   
        {
            // første linie
            for (i = 1; i <= melrum1; i++)
                System.out.print(\" \");
            for (i = 1; i <= antalS1; i++)
                System.out.print(\"*\");
            System.out.println ();
           
            // anden linie
            for (i = 1; i <= melrum2; i++)
                System.out.print(\" \");
            for (i = 1; i <= antalS2; i++)
                    System.out.print(\"*\");
                System.out.println ();
               
                // tredie linie
                for (i = 1; i <= melrum3; i++)
                System.out.print(\" \");
            for (i = 1; i <= antalS3; i++)
                    System.out.print(\"*\");
                System.out.println ();
               
                // fjerde linie
                for (i = 1; i <= melrum4; i++)
                System.out.print(\" \");
            for (i = 1; i <= antalS4; i++)
                    System.out.print(\"*\");
                System.out.println ();
               
                // femte linie
                for (i = 1; i <= melrum5; i++)
                System.out.print(\" \");
            for (i = 1; i <= antalS5; i++)
                    System.out.print(\"*\");
               
                System.out.println (\"\\n\\n\");   
            } // for (ANTAL_FIGURER
    }
}   

Hvis det skal være smartere kan der bruges arrays. Sig til hvis du også vil bruge arrays.

/codemon
Avatar billede codemon Nybegynder
21. oktober 2000 - 19:44 #4
indrykningen er lidt rodet. Det er vist fordi jeg bruger TABS istedet for SPACES, som så ikke kommer til at stå rigtigt ved indsætningen.
Avatar billede backupmand Nybegynder
22. oktober 2000 - 14:51 #5
hej Codemon,
det er meget skægt den printer præcis sådan
ud som jeg vil have
*
***
****
***
*
Selvom det var
  *
***
*****
***
  *
Jeg mente (det kommer forkert ud, når jeg sender
kommentaren), men det er kun et spg.  om
tilrettelse. Jeg skal lige kigge på for-løkkerne
og blive klogere, men jeg siger ihvertfald
tak!
Avatar billede codemon Nybegynder
23. oktober 2000 - 11:34 #6
Det var godt du kunne bruge den, hvad så med at acceptere svaret?
Avatar billede backupmand Nybegynder
23. oktober 2000 - 11:49 #7
ok, gjort - håber jeg.!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester