Archief - Hulp gevraagd programmeren in JAVA NetBeans

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

ultddave

Legacy Member
Code:
currentGetal > 80 && currentGetal != 0
Die laatste mag weg, want als hij groter is dan 80, kan hij niet meer nul zijn ;).

Je kan ook best haakjes plaatsen om aan te geven welke stukken bij elkaar horen (niet noodzakelijk voor correctheid, maar voor de leesbaarheid is dat ook altijd leuk - vind ik persoonlijk).

Code:
if( [COLOR="#FF0000"]([/COLOR]currentGetal < 50 && currentGetal != 0[COLOR="#FF0000"])[/COLOR] || currentGetal > 80 )
  System.out.println(currentGetal);

Anders ga je in sommige gevallen vreemde resultaten krijgen. Je kan best dezelfde redenering gebruiken als bij wiskunde, zaken die je eerst moet uitvoeren, moet je tussen haakjes plaatsen.

5 + 3 * 2 is niet hetzelfde als (5 + 3) * 2 ;).

Stel volgend educatief voorbeeld: (currentGetal < 13 && currentGetal > 10 || currentGetal < 15)
Dan zal deze conditie andere resultaten geven adhv de haakjes:

Optie 1:
Input: currentGetal = 14
Code:
(currentGetal < 13 && currentGetal > 10 || currentGetal < 15)
Wordt aanvaard want: "false && true || true" is "false || true" is dus "true".

Optie 2:
Input: currentGetal = 14
Code:
(currentGetal < 13 && (currentGetal > 10 || currentGetal < 15))
Wordt niet aanvaard want:
"false && (true || true)" is "false && true" is dus "false" ;).

Bij sommige expressies maakt het uiteraard geen verschil als je ze met of zonder haakjes schrijft. ;)

Ben wel al hele lange tijd niet meer met Java bezig geweest. Weet dus niet hoe up-to-date deze is
Is up-to-date ;).

De prof kan je de syntax en de taal bijbrengen, maar het gebruik van externe libraries en klassen (zoals Math) is vaak veel te uitgebreid om (vanbuiten) te leren.
Daarin snap ik dat je prof vraagt om dit te googlen.
2nd.

Als programmeur moet je vaak informatie zoeken over functie of klassen die je wilt gebruiken. In Netbeans kan je bovendien de autoaanvulling (CTRL+SPATIE is dat standaard als ik me niet vergis) gebruiken om die op te vragen.
Bv: http://www.tiplite.com/wp-content/uploads/2012/01/netbeans-cake-1.3.jpg

De meeste IDEs hebben die functionaliteit bovendien. ;)

Zitten jullie programmeurs of kenners van programmeren soms met jullie handen in jullie haren?
Ik kan uiteraard niet voor iedereen spreken, maar uiteraard zijn er momenten waarbij sommige zaken niet zo vlot gaan. Bijvoorbeeld iets implementeren waarvan weinig voorbeeldcode of weinig documentatie beschikbaar is.
Of code schrijven die iets anders doet dan je verwacht had en je ziet de oorzaak niet.

Voorbeeldje is hier: https://www.beyondgaming.be/archive/web-design-programming.237/c-random-dictionary-item.909452 waarbij het programma in "run"- en "debug"-mode andere resultaten geeft.

TRIPPIN BUNNY

Legacy Member
Maar uit persoonlijke ervaring moet ik je toch vertellen dat dit dagelijkse kost is dat als men code live gaat da problemen geeft. Dat code die locaal perfect werkte ineens wat onnozel begint te doen op de server.
En ik moet spijtig genoeg ook toegeven dat de meeste code dia je online terugvindt meestal gene best practice is hoor.
Op de MSDN en Stackoverflow vind je degelijke info maar als je het hier niet vind dan jammer...
Daarom als je niet graag zelfstandig en probleemoplossend werkt kan je beter een ander vak kiezen.

Mackenzie

Legacy Member
Bardock zei:
Ben je ermee dagelijks mee bezig, oefen je een functie uit waarmee je dit dagelijks mee maakt? (Hoeft niet te vertellen als je niet wil).

Ik heb bachelor TI gedaan en zit nu in master computerwetenschappen, dus kom er zeker wel dagelijks mee in aanraking :) maar dit is dan ook het begin van het begin he :p
Zoals ultddave al zei; de haakjes zijn in voorwaardes heel belangrijk.
Zaken zoals jouw
Code:
 even = isGetalEvenofOneven(currentGetal);
            if (even == true) {
kunnen wel in 1 keer, maar dit werkt even vlotjes natuurlijk.
Code:
if (isGetalEvenofOneven(currentGetal)){

ultddave

Legacy Member
@Bardock;
isGetalEvenofOneven
Deze functienaam zou ik persoonlijk wel nog aanpassen. Ik gebruik meestal de volgende methode bij functies die een boolean (true of false) moeten teruggeven: "maak er een vraag van".

isGetalEvenofOneven = "Is het volgende getal even of oneven: 5?" en jij moet daar "true" of "false" (dus "ja" of "nee") op antwoorden. Dat is niet echt mogelijk vanwege die "even of oneven", want degene die de vraag stelt verwacht geen "ja/nee" antwoord maar het antwoord "het is even" of "het is oneven". ;)

Dus vandaar dat je meestal namen gebruikt zoals:
isEven
isOneven
isEnabled
isActive

Ook best woorden zoals "not" of "niet" vermijden in je functienamen, die zijn meestal verwarrend:
"isNietEven" => wat als deze "false" returned? Dan wilt dat zeggen dat zeggen "het getal is niet niet even", of met andere woorden, het is even :P. Altijd namen zoals "isEven" verkiezen en uiteraard ook naargelang coderen.

NoGo

Legacy Member
Code:
 private static boolean isGetalEvenofOneven(int genererendeGetal) {
        boolean even;
        /* Is het generende getal deelbaar door 2 zonder rest? (rest = 0) */
        if (genererendeGetal % 2 == 0) {
            /* als het waar is en het getal is even, dan zal de boolean TRUE zijn */
            even = true;
            /* als dat niet waar is, en het getal is oneven, dan zal de boolean FALSE zijn */
        } else {
            even = false;
        }
        /* Retourneer VARIABELE EVEN terug in PRIVATE METHODE drukEvenGetallen */
        return even;

    }

Je kan ook doen (kleine tip):

Code:
 private static boolean isGetalEvenofOneven(int genererendeGetal) {
        return genererendeGetal % 2 == 0;
    }

Is n beetje netter :p

Bardock

Legacy Member
NoGo zei:
Code:
 private static boolean isGetalEvenofOneven(int genererendeGetal) {
        boolean even;
        /* Is het generende getal deelbaar door 2 zonder rest? (rest = 0) */
        if (genererendeGetal % 2 == 0) {
            /* als het waar is en het getal is even, dan zal de boolean TRUE zijn */
            even = true;
            /* als dat niet waar is, en het getal is oneven, dan zal de boolean FALSE zijn */
        } else {
            even = false;
        }
        /* Retourneer VARIABELE EVEN terug in PRIVATE METHODE drukEvenGetallen */
        return even;

    }

Je kan ook doen (kleine tip):

Code:
 private static boolean isGetalEvenofOneven(int genererendeGetal) {
        return genererendeGetal % 2 == 0;
    }

Is n beetje beter :p

Ahja, dat kan ook. Maarja, de prof wil per se If-Else() voluit geschreven zien, maar ik begrijp wat je bedoel.

Bardock

Legacy Member
Mackenzie zei:
Ik heb bachelor TI gedaan en zit nu in master computerwetenschappen, dus kom er zeker wel dagelijks mee in aanraking :) maar dit is dan ook het begin van het begin he :p
Zoals ultddave al zei; de haakjes zijn in voorwaardes heel belangrijk.
Zaken zoals jouw
Code:
 even = isGetalEvenofOneven(currentGetal);
            if (even == true) {
kunnen wel in 1 keer, maar dit werkt even vlotjes natuurlijk.
Code:
if (isGetalEvenofOneven(currentGetal)){

Yup, nu zie ik het. Dat was hetgeen wat ik wou, enkele True of False bepalen en tonen inde private methode isEven en niet in de methode drukGetallen :)

Computerwetenschappen nice! Ik neem aan Burg. Ir computerwetenschappen in Leuven gezien je locatie? :)

Bardock

Legacy Member
ultddave zei:
Code:
currentGetal > 80 && currentGetal != 0
Die laatste mag weg, want als hij groter is dan 80, kan hij niet meer nul zijn ;).

Je kan ook best haakjes plaatsen om aan te geven welke stukken bij elkaar horen (niet noodzakelijk voor correctheid, maar voor de leesbaarheid is dat ook altijd leuk - vind ik persoonlijk).

Code:
if( [COLOR="#FF0000"]([/COLOR]currentGetal < 50 && currentGetal != 0[COLOR="#FF0000"])[/COLOR] || currentGetal > 80 )
  System.out.println(currentGetal);

Anders ga je in sommige gevallen vreemde resultaten krijgen. Je kan best dezelfde redenering gebruiken als bij wiskunde, zaken die je eerst moet uitvoeren, moet je tussen haakjes plaatsen.

5 + 3 * 2 is niet hetzelfde als (5 + 3) * 2 ;).

Stel volgend educatief voorbeeld: (currentGetal < 13 && currentGetal > 10 || currentGetal < 15)
Dan zal deze conditie andere resultaten geven adhv de haakjes:

Optie 1:
Input: currentGetal = 14
Code:
(currentGetal < 13 && currentGetal > 10 || currentGetal < 15)
Wordt aanvaard want: "false && true || true" is "false || true" is dus "true".

Optie 2:
Input: currentGetal = 14
Code:
(currentGetal < 13 && (currentGetal > 10 || currentGetal < 15))
Wordt niet aanvaard want:
"false && (true || true)" is "false && true" is dus "false" ;).

Bij sommige expressies maakt het uiteraard geen verschil als je ze met of zonder haakjes schrijft. ;)

Ik begin het stilletjes beter en beter te begrijpen. Was je maar mijn docent :lol:

Ik zal jouw voorbeeld eens volgen en klein programma schrijven met while-lus. Eens zien wat dat geeft.

ultddave zei:
@Bardock;

Deze functienaam zou ik persoonlijk wel nog aanpassen. Ik gebruik meestal de volgende methode bij functies die een boolean (true of false) moeten teruggeven: "maak er een vraag van".

isGetalEvenofOneven = "Is het volgende getal even of oneven: 5?" en jij moet daar "true" of "false" (dus "ja" of "nee") op antwoorden. Dat is niet echt mogelijk vanwege die "even of oneven", want degene die de vraag stelt verwacht geen "ja/nee" antwoord maar het antwoord "het is even" of "het is oneven". ;)

Dus vandaar dat je meestal namen gebruikt zoals:
isEven
isOneven
isEnabled
isActive

Ook best woorden zoals "not" of "niet" vermijden in je functienamen, die zijn meestal verwarrend:
"isNietEven" => wat als deze "false" returned? Dan wilt dat zeggen dat zeggen "het getal is niet niet even", of met andere woorden, het is even :P. Altijd namen zoals "isEven" verkiezen en uiteraard ook naargelang coderen.

Klinkt inderdaad logischer dan "IsGetalEvenofOneven" te gebruiken. Maar als ik "isEvenofOneven" gebruiken, is het lichtje anders en beter begrijpbaar of is dat net iets onduidelijk?

Zou ik de methode "drukEvenGetallen" niet beter veranderen naar "drukRandomEvenGetallen" of "drukEvenRandomGetallen"? Want tenslotte druk het programma enkel even getallen af.

Recipe4hate

Legacy Member
TRIPPIN BUNNY zei:
Maar uit persoonlijke ervaring moet ik je toch vertellen dat dit dagelijkse kost is dat als men code live gaat da problemen geeft. Dat code die locaal perfect werkte ineens wat onnozel begint te doen op de server.
En ik moet spijtig genoeg ook toegeven dat de meeste code dia je online terugvindt meestal gene best practice is hoor.
Op de MSDN en Stackoverflow vind je degelijke info maar als je het hier niet vind dan jammer...
Daarom als je niet graag zelfstandig en probleemoplossend werkt kan je beter een ander vak kiezen.

Dit dus.
Stackoverflow vind ik persoonlijk trouwens enorm goed. Daar zitten vaak mensen, waarvan ik de boeken in mijn kast heb staan, posts te beantwoorden. Vooral Jon Skeet kom je veel tegen :D

Mackenzie

Legacy Member
Bardock zei:
...n in Leuven gezien je locatie? :)

Toevallig genoeg klopt dat wel, maar de redenering erachter vind ik vreemd :p
Turnhout ligt op 12 km van de grens met Nederland en Leuven is toch wel een 80-85 km verder :D

TRIPPIN BUNNY en Recipe4hate, dat vind ik nu ook altijd opmerkelijk. Met enorm veel zaken hoe gevarieerd of vreemd soms ook, als je ze googlet is er altijd al wel iemand die het op StackOverflow gevraagd heeft. En zeker niet enkel voor Java, maar heb ook SharePoint en iOS development gedaan en je vindt daar echt vaak het antwoord dat je zoekt.

profound

Legacy Member
Mackenzie zei:
Met enorm veel zaken hoe gevarieerd of vreemd soms ook, als je ze googlet is er altijd al wel iemand die het op StackOverflow gevraagd heeft.

Haha, da is echt :D

SO is echt wel dé site.

TRIPPIN BUNNY

Legacy Member
Inderdaad ik denk dat ik dagelijks dingen opzoek op StackOverflow en je vind hier bijna altijd enorm goede info zeker als je rekening houd met hoeveel '+1' een antwoord gekregen heeft.
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan