Toon posts:

Java For Lus probleem

Pagina: 1
Acties:
  • 307 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik zit met het volgende probleem.

Deze code heeft als uitkomst:
Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class Tentamen {

public Tentamen() {

for ( int i = 0; i <=3; i++)
 {     
     for ( int j = 0; j <10; j++){
     System.out.print((i+1)*(i+2) +" ");
     i++;
     }
     System.out.println();
  }
}
  public static void main(String[] args)
  {
    new Tentamen();
  }
}


UItkomst=

2 6 12 20 30 42 56 72 90 110


Maar ik wil dus dat het de volgende uitkomst weergeeft.

2 6 12 20 30 42 56 72 90 110
6 12 20 30 42 56 72 90 110 132
12 20 30 42 56 72 90 110 132 156
20 30 42 56 72 90 110 132 156 182

[ Voor 0% gewijzigd door D2k op 25-10-2002 10:56 . Reden: code tags ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Een algemene opmerking (heb niet je algoritme bekeken). Het is verboden dat je de teller van die forlus aanpast. Verder is dit gewoon even goed zelf nadenken.

ik zie dat je dit al eerder hebt geprobeerd:
java FOR-LUS probleem!!!!

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Ik zal je 1 tip geven. Maar een nieuwe functie die niets anders doet dan 1 zo`n rij af te drukken. Daarna roep je deze functie weer 4 keer aan. Hierdoor krijg jij beter inzicht wat je doet, en verzuip je niet in dubbele for lussen.

  • whoami
  • Registratie: December 2000
  • Laatst online: 19:34
Waarom doe je i++ binnen die 2de for lus?
Dit zal er voor zorgen dat je na 3 iteraties in de binnenste lus, i = 3 is en die buitenste for lus dus niet meer zal uitgevoerd worden.

https://fgheysels.github.io/


  • traviandus
  • Registratie: Februari 2001
  • Laatst online: 25-03-2025

traviandus

vague

Inderdaad moet je niet de for lus variable i aan gaan passen in je lus.

Verder valt me meteen op dat je de variable j van de binnenste lus helemaal niet gebruikt. In de binnenste lus moet je een vermenigvuldiging maken van j en i zodat je de variabele i ongemoeit kunt laten.

Verwijderd

Topicstarter
Kijk de volgende oplossing werkt wel.

Maar het kan toch korter of zie ik dat nou verkeerd???

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
public class Tentamen {

    
    public Tentamen() {
int size; 
size =2; 
int a = 1;
int b= 2;
int c,d;

for ( int i = 0; i <=size; i++)

  {
    c=a;
    d=b;
     for ( int j = 0; j <10; j++){

     System.out.print(c*d +" ");
     c++;
     d++;
   }
    
    System.out.println();
     a++;
     b++;
  }

}
  public static void main(String[] args)
  {
    new Tentamen();
  }
}

met vriendelijke groet

[edit]code tags toegevoegd[/code]

[ Voor 0% gewijzigd door whoami op 25-10-2002 11:30 ]


  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Het kan in ieder geval wel een stuk duidelijker. Probeer maar een functie erbij te maken die je gewoon 4 keer aanroept, en die functie drukt dan zo`n reeks af. Dat algoritme van jou is vrij akelig *bibber*

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:26
Denk alsjeblieft eerst eens na over wat je wilt. Wat je nu doet slaat echt als een tang op een varken. En ik kan ook niet zeggen dat je tweede suggestie goed in elkaar steekt.

Voordat je verder prutst, kun je beter Alarmnummer's suggestie volgen en een functie definieren die de gevraagde getallen genereert (al is dat in dit simpele geval eigenlijk overkill) en bedenken dat 't resultaat dat je wilt genereren er zo uit ziet:

code:
1
2
3
4
f( 0 ) f( 1 ) f( 2 ) ...  f( X )
f( 1 ) f( 2 ) f( 3 ) ...  f(X+1)
 ...    ...    ...         ...
f( Y ) f(Y+1) f(Y+2) ...  f(X+Y)


Zo, nu hebben we genoeg weggeven en mag jij weer wat inzicht tonen.

  • Soultaker
  • Registratie: September 2000
  • Laatst online: 02:26
Alarmnummer schreef op 25 oktober 2002 @ 10:54:
Het is verboden dat je de teller van die forlus aanpast.
Was jij niet die persoon die voorstelde om in plaats van een 'break' statement de conditie-variabele binnen een lus maar op 't eind te zetten?

(Als in:
Java:
1
2
3
4
for(int x = 0; x < 10; ++x)
{
    if(iets) x = 10;
}

  • Alarmnummer
  • Registratie: Juli 2001
  • Laatst online: 09-07-2024

Alarmnummer

-= Tja =-

Soultaker schreef op 25 oktober 2002 @ 11:44:
[...]

Was jij niet die persoon die voorstelde om in plaats van een 'break' statement de conditie-variabele binnen een lus maar op 't eind te zetten?
Er staat me wel zoiets bij ja. Maar ik denk dat het uitermate belangrijk is, dat je weet in welke context dat was. Iedereen gaf namelijk gruwelijke oplossingen, dus ik deed er nog maar een schepje bovenop. Ik dacht dat het wel duidelijk was dat ik enorm sarcastisch was :)
Pagina: 1

Dit topic is gesloten.