Black Friday = Pricewatch Bekijk onze selectie van de beste Black Friday-deals en voorkom een miskoop.

[java] Actie in for loop, daarbuiten toepassen *

Pagina: 1
Acties:

  • battler
  • Registratie: November 2004
  • Laatst online: 30-06 15:11
Ik moet voor school een priemgetallen generator maken. Maar ik loop vast bij het volgende stuk:

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
34
import java.io.*;
public class deler
{
    public static void main(String[] args) throws IOException
    {

            int getal = 4;
            int deler = 2;

             
            for (deler = 2; deler < getal; getal++)
            {

                int restant = getal / deler; 
                if (restant == 0)
                {
                    getal = getal / deler;
        System.out.println("even =" + deler);

                }
                else
                {
                    deler++;
        System.out.println("oneven =" + deler);

                }

            }
            
        System.out.println("Priemgetal =" + getal);

    }

}


Nu snap ik dat mijn code verre van optimaal is e.d, maar het is voor school dus ik zal hem zelf moeten optimaliseren. Maar het enige waar ik al de hele dag mee bezig ben is het volgende.
In mijn For loop staat de declaratie "getal = 2". Vervolgens wordt er binnen die for loop getal++ gedaan, met als bedoeling dat getal 3 wordt. Dit gebeurd ook binnen die loop (zoals het hoort) maar niet in de declaratie in de For loop. Hoe zorg ik ervoor dat dit alsnog daar gebeurd. Of met andere woorden, hoe zorg ik dat een actie binnen een loop daarbuiten wordt uitgevoerd?


*Mod: Ik was nog niet klaar met me titel, misschien veranderen in :"[java] Actie in for loop, daarbuiten toepassen."

[ Voor 4% gewijzigd door battler op 13-09-2008 17:14 ]

Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl


  • pachacuti
  • Registratie: Januari 2002
  • Laatst online: 14-09 12:40
Haal je deler en getal hier niet door elkaar? :)

Anyway.
Als je 2 getallen deelt door elkaar krijg je nooit nul, je zal moeten kijken of de modulo (getal % deler) nul is.

Nu kom je altijd in de elseflow terecht en ga je in de for loop bij elke iteratie zowel getal++ als deler++ doen waardoor je een oneindige loop krijgt.

  • battler
  • Registratie: November 2004
  • Laatst online: 30-06 15:11
Ik ben er in der daad net achter gekomen dat ik de deler en het getal door elkaar haalde.
De opdr. was om de eerste 200 priemgetallen op het scherm te printen. Ik ben er nog niet, maar volgens mij ben ik al aardig in de buurt.

Lux.Architectuur | Van Dromen tot Wonen | www.Lux-a.nl


  • Confusion
  • Registratie: April 2001
  • Laatst online: 01-03-2024

Confusion

Fallen from grace

Een tip om dit in de toekomst te voorkomen: geef je variabelen betekenisvolle namen. Als ik voor project Euler een probleem met betrekking tot priemgetallen aan het oplossen ben, dan noem ik het getal dat onderzocht wordt bijvoorbeeld altijd 'primeCandidate'. Dan kan je het niet door de war halen, terwijl een 'deler' ook een 'getal' is en er dus begripsverwarring optreedt.

Wie trösten wir uns, die Mörder aller Mörder?


  • writser
  • Registratie: Mei 2000
  • Laatst online: 22:40
Confusion schreef op zaterdag 13 september 2008 @ 17:43:
Een tip om dit in de toekomst te voorkomen: geef je variabelen betekenisvolle namen. Als ik voor project Euler een probleem met betrekking tot priemgetallen aan het oplossen ben, dan noem ik het getal dat onderzocht wordt bijvoorbeeld altijd 'primeCandidate'. Dan kan je het niet door de war halen, terwijl een 'deler' ook een 'getal' is en er dus begripsverwarring optreedt.
offtopic:
Hoeveel problemen heb je al opgelost? Misschien aardig om hier eens een topic over te openen.

Onvoorstelbaar!


Verwijderd

Confusion schreef op zaterdag 13 september 2008 @ 17:43:
Een tip om dit in de toekomst te voorkomen: geef je variabelen betekenisvolle namen. Als ik voor project Euler een probleem met betrekking tot priemgetallen aan het oplossen ben, dan noem ik het getal dat onderzocht wordt bijvoorbeeld altijd 'primeCandidate'. Dan kan je het niet door de war halen, terwijl een 'deler' ook een 'getal' is en er dus begripsverwarring optreedt.
offtopic:
Coole site, nooit van gehoord :)
Pagina: 1