Odd numbers van input

  • Hallo allemaal,


    Ik moet voor school een klein programmaatje schrijven die alle oneven getallen van de invoer bij elkaar optelt... Alleen kom ik er maar niet uit.


    Ik heb zelf de volgende code:



    Echter wanneer je nu bijvoorbeeld 1234 invult, komt er als output: antwoord is: 100. Terwijl het antwoord zou moeten zijn 1+3= 4. Iemand enig idee wat ik fout doe?

  • Ah, dit is een leuke! Het probleem zit hem in regel 18:

    Code
    int getal = nummersLengte.charAt(x);


    Ga eens na wat de return-value is van charAt(), en kijk eens of je het dan weet.


    Nog wat andere opmerkingen:
    - Wat is de toegevoegde waarde van de variabele antwoord?
    - Classnamen in Java zijn CamelCase, en beginnen dus met een hoofdletter.
    - Gebruik je een IDE (Netbeans, IntelliJ, ..)? Zo nee, probeer dat eens. Zo ja, als je leert met de debugger om te gaan, had je dit kunnen vinden. Zodoende heb ik het ook gevonden.

  • Hallo Stefan,


    Hier zit inderdaad de fout in. Wanneer ik namelijk 1234 invul, krijg ik als waardes: 49,50,51,52 terug. Echter is bij mij nu helemaal de klomp gebroken, want nu begrijp ik niet waar die waardes vandaan komen?


    Over de andere opmerkingen:


    - Antwoord heeft inderdaad geen toegevoegde waarde, dit is eigenlijk een overblijfsel van andere pogingen die ik heb gedaan. Deze heb ik nu ook verwijderd :)
    - Op school hebben we geleerd dat je begint met een kleine letter en elk ander woord met een hoofdletter. Dus bijv.: classJavaVoorSchool
    - Ik gebruik momenteel Eclipse (moet van school). Daar heb ik echter geen fout melding gekregen.

  • Ik krijg ook Java in mijn studie en ik heb het inderdaad geleerd met de CamelCase.
    Verder vraag ik me af waarvoor Scanner dient, kan je dat even toe lichten?


    Ook een opmerking maar niet persé een fout:


    Code
    som = som + getal;


    Je kan bovenstaand stukje code herschrijven naar onderstaand stukje code. Is iets sneller qua ingeven, weet niet of er ook een ander verschil is.


    Code
    som += getal;
  • Super jongens, de laatste tip van je stefan... Dat ik daar zelf niet op kwam :huh:! Maar in ieder geval hartstikke bedankt jongens!


    Hier mijn volledig werkende code, mocht iemand er nog belang bij hebben:



    PS: Als ik de class verander in CamelCase, dus naar OpdrachtE, geeft hij de volgende error:
    The public type OpdrachtE must be defined in its own file.


    EDIT: Maar dat komt natuurlijk omdat ik hem opdrachtE heb genoemd, ik zal in het vervolg rekening houden met CamelCase :)

Participate now!

Heb je nog geen account? Registreer je nu en word deel van onze community!