Toon posts:

[JAVA] If - Statements

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

Verwijderd

Topicstarter
Aangezien mijn vorige topic terecht was gesloten, heb ik een nieuwe gemaakt met een uitgebreidere topicstart.

Mijn probleem is dat ik mijn script niet werkende krijg, ik denk zelf dat het probleem bij de ELSE-IF statements ligt, hoewel het ook an de accolades kan liggen.

Het doel van mijn script is om 3 textfields te weergeven waarin de gebruiker zelf 3 cijfers moet opgeven,
daarna is het de taak van het script om de cijfers van hoog naar laag aan de gebruiker te laten weeregeven d.m.v een drawString.

Script:

Java:
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
import java.awt.*;
import java.applet.*;
import java.awt.event.*;

//Declareren
//-------------------------------------------------------------------------------------

public class Opgave1HF6 extends Applet
{
    Button BerekenKnop;
    
    TextField CijferEen;
    TextField CijferTwee;
    TextField CijferDrie;
    
    Label CijferEenLabel;
    Label CijferTweeLabel;

    Label CijferDrielabel;
    
    int aa;
    int bb;
    int cc;

//Achtergrond
//------------------------------------------------------------------------------------
    
    public void init() 
    {
        setLayout (null);
        setBackground (Color.blue);
        
     
//Labels & Tekstvakken
//-------------------------------------------------------------------------------------     

  CijferEen = new TextField (20);
  CijferEenLabel = new Label ("Het eerste getal:");
  
  CijferEen.setBounds (50, 40, 100, 20);
  CijferEenLabel.setBounds ( 50, 10, 100, 20);
    
  CijferTwee = new TextField (20);
  CijferTweeLabel = new Label ("Het tweede getal:");
  
  CijferTwee.setBounds ( 50, 100, 100, 20);
  CijferTweeLabel.setBounds ( 50, 70, 100, 20);
  
  CijferDrie = new TextField (20);
  CijferDrieLabel = new Label ("Het derde getal: ");
  
  CijferDrie.setBounds (50, 160, 100, 20);
  CijferDrieLabel.setBounds (50, 130, 100, 20);
  
  BerekenKnop = new Button ("Bereken");
  add (BerekenKnop);
  
//Handlers
//------------------------------------------------------------------------------------

      BerekenKnop.addActionListener( new BerekenKnopHandler() );
      
      BerekenKnop.setBounds (50,210,100,20);   
  
//Toevoegen Labels & Textvakken 
//------------------------------------------------------------------------------------

add (CijferEenLabel);
add (CijferEen);
add (CijferTweeLabel);
add (CijferTwee);
add (CijferDrieLabel);
add (CijferDrie);

//Bereken
//------------------------------------------------------------------------------------

if (aa<=bb && aa<=cc && bb<=cc){
            g.drawString("volgorde is: "+aa+", "+bb+", "+cc+".",100,190);
        }
        else if (aa<=bb && aa<=cc && bb>=cc){
            g.drawString("volgorde is: "+aa+", "+cc+", "+bb+".",100,190);
        }
        else if (aa>=bb && aa<=cc && bb<=cc){
            g.drawString("volgorde is: "+bb+", "+aa+", "+cc+".",100,190);
        }
        else if (aa>=bb && aa>=cc && bb<=cc){
            g.drawString("volgorde is: "+bb+", "+cc+", "+aa+".",100,190);
        }
        else if (aa>=bb && aa>=cc && bb>=cc){
            g.drawString("volgorde is: "+cc+", "+bb+", "+aa+".",100,190);
        }
        else if (aa<=bb && aa>=cc && bb>=cc){
            g.drawString("volgorde is: "+cc+", "+aa+", "+bb+".",100,190);
        }
        else  {
            g.drawString("Geen goede gegevens.",100,190);
                }
}

//Paint
//-------------------------------------------------------------------------------------

public void paint (Graphics g)

{


    {
        g.drawString ("Getalresultaat 1 =" + aa, 50,180);
    }


    {
        g.drawString ("Getalresultaat 2 =" + bb, 50,190);
    }


    {
        g.drawString ("Getalresultaat 3 =" + cc, 50,200);
    }


}   

//Acties
//------------------------------------------------------------------------------------

   class BerekenKnopHandler implements ActionListener
   {
      public void actionPerformed( ActionEvent e )
      {
         String invoerString;
         
         aa= Integer.parseInt( CijferEen.getText() );

         bb= Integer.parseInt( CijferTwee.getText() );
         
         cc= Integer.parseInt( CijferDrie.getText() );
                  
         repaint();

      }
}
}
//The End
//-----------------------------------------------------------------------------------
  
  


DE 2 ERRORS die ik krijg:

code:
1
2
3
4
5
6
7
C:\Program Files\Xinox Software\JCreator LE\MyProjects\Moderngedicht\Opgave1HF6\Opgave1HF6.java:79: illegal start of type
if (aa<=bb &&&& aa<=cc &&&& bb<=cc){
^
C:\Program Files\Xinox Software\JCreator LE\MyProjects\Moderngedicht\Opgave1HF6\Opgave1HF6.java:127: <identifier> expected
}   
       ^
2 errors


Ik hoop dat mijn topic voldoet aan alle eisen, zoniet kan een moderator dat zeggen i.p.v mijn topic weer op slot te doen. :)

[ Voor 22% gewijzigd door Verwijderd op 04-10-2005 20:27 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Je hebt nog steeds die laatste else if niet veranderd in een if. ;)

Bovendien: alleen het stukje met de if/else if code is relevant. Het is dus voldoende als je alleen dat stuk code post, met de rest kunnen we toch niet veel. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 21:57

Hu9o

Schokkend

moet het niet zijn

if ((aa>=bb) && (bb>=cc)) {

}

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


Verwijderd

Topicstarter
ik denk zelf niet dat het daaraan ligt, ( de laatste IF) want als ik die verander treden er geen veranderingen op of errors.

En ik post lievr het gehele script zodat de accolades ( en hun functie) zichtbaar zijn, aangezien zij door het hele script aanwezig zijn.

Verwijderd

Topicstarter
Hu9o schreef op dinsdag 04 oktober 2005 @ 20:07:
moet het niet zijn

if ((aa>=bb) && (bb>=cc)) {

}
Nee mijn errors blijven na het debuggen, ik heb anders wel sterk het gevoel dat mijn {} verkeerd zijn...maar ik kan geen fouten vinden. :(

  • Hu9o
  • Registratie: Mei 2001
  • Laatst online: 21:57

Hu9o

Schokkend

de laatste else if moet trouwens een else zijn.

>>>>>>>>>>>>>>>>>>>>>>>>>Vertel Microsoft over dit probleem <<<<<<<<<<<<<<<<<<<<<<<<<


  • DaRKie
  • Registratie: December 2001
  • Laatst online: 28-04 10:57
Verwijderd schreef op dinsdag 04 oktober 2005 @ 20:09:
ik denk zelf niet dat het daaraan ligt, ( de laatste IF) want als ik die verander treden er geen veranderingen op of errors....
Als je het weglaat krijg je geen errors? Is het dan niet opgelost? :)

Want volgens mij moet die laatste if er ook echt weg, na een if moet steeds een conditie komen.

Verwijderd

Topicstarter
nee, al laat ik het hele zaakje van de laatste else weg, dan treed er nog steeds geen verschil op. :'(

[ Voor 3% gewijzigd door Verwijderd op 04-10-2005 20:16 ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op dinsdag 04 oktober 2005 @ 20:09:
ik denk zelf niet dat het daaraan ligt, ( de laatste IF) want als ik die verander treden er geen veranderingen op of errors.
Dat er niets verandert, betekent nog niet dat het goed is. Misschien valt de compiler over nieuwe fouten (oa deze) als je de huidige fouten weggewerkt hebt. ;) En if zonder conditie slaat gewoon nergens op en hoort niet. Een uitzonderingsgeval, als je alle normale opties hebt gehad is altijd 'else' zonder voorwaarde en dus zonder 'if'.

Ik ben geen held in appletjes en mijn Java-kennis is wat roestig, maar wil je dat hele if-else gedoe niet in een functie hebben staan?
edit:
(of idd wat de slimme persoon onder mij zegt :P )


Overigens is het misschien ook netter en makkelijker om gewoon die 3 integers in iets te stoppen dat een kant en klare sorteer functie heeft. ;)

[ Voor 10% gewijzigd door Voutloos op 04-10-2005 20:18 ]

{signature}


  • PierreAronnax
  • Registratie: Maart 2002
  • Niet online
In regel 74 staat een sluit accolade van de init() methode, die moet volgens mij onder de hele if-statement staan (rond regel 100).

[ Voor 4% gewijzigd door PierreAronnax op 04-10-2005 20:18 ]

Pierre - Motormedia.nl - Motor-Forum.nl - Motorshopper.nl - Motormeuk.nl - Motorstek.nl


Verwijderd

Topicstarter
Voutloos schreef op dinsdag 04 oktober 2005 @ 20:15:
[...]
Dat er niets verandert, betekent nog niet dat het goed is. Misschien valt de compiler over nieuwe fouten (oa deze) als je de huidige fouten weggewerkt hebt. ;) En if zonder conditie slaat gewoon nergens op en hoort niet. Een uitzonderingsgeval, als je alle normale opties hebt gehad is altijd 'else' zonder voorwaarde en dus zonder 'if'.

Ik ben geen held in appletjes en mijn Java-kennis is wat roestig, maar wil je dat hele if-else gedoe niet in een functie hebben staan?

Overigens is het misschien ook netter en makkelijker om gewoon die 3 integers in iets te stoppen dat een kant en klare sorteer functie heeft. ;)
Mijn compiler valt niet over ander fouten heen als ik iest verander dus ik denk zelf dat de fout ergens anders ligt dan in de else if. Jammergenoeg is mijn kennis van Java niet denderend.

Ik snap niet precies wat je bedoeld met "in een functie" en ik ben bang dat ik niet zo 123 een sorteerfunctie erbij mag proppen aangezien dit een opgave voor school is.

  • DaRKie
  • Registratie: December 2001
  • Laatst online: 28-04 10:57
Verwijderd schreef op dinsdag 04 oktober 2005 @ 20:20:
[...]


Mijn compiler valt niet over ander fouten heen als ik iest verander dus ik denk zelf dat de fout ergens anders ligt dan in de else if. Jammergenoeg is mijn kennis van Java niet denderend.

Ik snap niet precies wat je bedoeld met "in een functie" en ik ben bang dat ik niet zo 123 een sorteerfunctie erbij mag proppen aangezien dit een opgave voor school is.
Zoals PierreAronnax zegt, de init methode wordt veel te vroeg geclosed, dus verwijder de { op regel 75 en zet er eentje op regel 100

Dan ga je alsnog die laatste if verwijderen dus "else if {" wordt "else {"

En zo gaat alles werken, heb het trouwens snel getest in eclipse hier

Verwijderd

Topicstarter
het verplaatsen van die accolade in regel 74 heeft inderdaad wat stof doen opwaaien.

@daRKie : zou je dat willen posten, want ik stik hier opeens van de fouten.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
C:\Program Files\Xinox Software\JCreator LE\MyProjects\Moderngedicht\Opgave1HF6\Opgave1HF6.java:98: '(' expected
            g.drawString("Geen goede gegevens.",100,190);
                ^
C:\Program Files\Xinox Software\JCreator LE\MyProjects\Moderngedicht\Opgave1HF6\Opgave1HF6.java:98: illegal start of expression
            g.drawString("Geen goede gegevens.",100,190);
                                                            ^
C:\Program Files\Xinox Software\JCreator LE\MyProjects\Moderngedicht\Opgave1HF6\Opgave1HF6.java:106: 'class' or 'interface' expected
public void paint (Graphics g)
       ^
C:\Program Files\Xinox Software\JCreator LE\MyProjects\Moderngedicht\Opgave1HF6\Opgave1HF6.java:148: 'class' or 'interface' expected
}
^
C:\Program Files\Xinox Software\JCreator LE\MyProjects\Moderngedicht\Opgave1HF6\Opgave1HF6.java:156: 'class' or 'interface' expected
    
        ^
5 errors

[ Voor 52% gewijzigd door Verwijderd op 04-10-2005 20:26 ]


  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

Verwijderd schreef op dinsdag 04 oktober 2005 @ 20:20:
Mijn compiler valt niet over ander fouten heen als ik iest verander dus ik denk zelf dat de fout ergens anders ligt dan in de else if. Jammergenoeg is mijn kennis van Java niet denderend.
Je krijgt geen wijziging in foutmeldingen omdat de software niet overweg kan met dat hele if blok, aangezien die buiten een functie staat, zoals PierreAronnax ook al zegt. Je hebt gewoon die accolade op regel 74 op de foute plek staan. Daarnaast is ook die laatste else if fout.

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op dinsdag 04 oktober 2005 @ 20:23:
Jammergenoed krijg ik nu 1 andere error. Maar volgens mij schiet ik al op :*)
Altijd de bovenste error eerst oplossen en pas gaan jammeren als de volgende errors niet opeens blijken te verdwijnen. ;)

Wat betreft andere handige bouwblokjes gebruiken: als ze blijkbaar liever de code in regels 78 t/m 98 zien ipv een intuitief gebruik van bouwblokjes kan je ook wat vragen stellen bij de beoordeling. Stel je maar eens voor hoe je code eruit gaat zien met een variabele dd of zelfs een ee erbij, dat wordt al heel gauw, heel vervelend op deze manier. ;)

{signature}


Verwijderd

Topicstarter
PS: zou die accolade ook over de hele "public void paint" heenmoeten??? :?

@voutloos je hebt helemaal gelijk betreft de rommeligheid, dat moet ik nog aanpassen. O-)

[ Voor 43% gewijzigd door Verwijderd op 04-10-2005 20:30 ]


  • DaRKie
  • Registratie: December 2001
  • Laatst online: 28-04 10:57
Verwijderd schreef op dinsdag 04 oktober 2005 @ 20:23:
het verplaatsen van die accolade in regel 74 heeft inderdaad wat stof doen opwaaien.

@daRKie : zou je dat willen posten, want ik stik hier opeens van de fouten.
Hiermee moet het lukken:

Java:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
if (aa<=bb && aa<=cc && bb<=cc){ 
            g.drawString("volgorde is: "+aa+", "+bb+", "+cc+".",100,190); 
        } 
        else if (aa<=bb && aa<=cc && bb>=cc){ 
            g.drawString("volgorde is: "+aa+", "+cc+", "+bb+".",100,190); 
        } 
        else if (aa>=bb && aa<=cc && bb<=cc){ 
            g.drawString("volgorde is: "+bb+", "+aa+", "+cc+".",100,190); 
        } 
        else if (aa>=bb && aa>=cc && bb<=cc){ 
            g.drawString("volgorde is: "+bb+", "+cc+", "+aa+".",100,190); 
        } 
        else if (aa>=bb && aa>=cc && bb>=cc){ 
            g.drawString("volgorde is: "+cc+", "+bb+", "+aa+".",100,190); 
        } 
        else if (aa<=bb && aa>=cc && bb>=cc){ 
            g.drawString("volgorde is: "+cc+", "+aa+", "+bb+".",100,190); 
        } 
        else { 
            g.drawString("Geen goede gegevens.",100,190);
        } 
    }



BTW: deze code moet volges mij onder de paint methode staan aangezien de variable g niet bestaat, wat logisch is aangezien deze nergens in de init methode gedeclareerd wordt, dus als je dat in de paint gooit ...

[ Voor 25% gewijzigd door DaRKie op 04-10-2005 20:30 ]


  • Voutloos
  • Registratie: Januari 2002
  • Niet online
Verwijderd schreef op dinsdag 04 oktober 2005 @ 20:28:
PS: zou die accolade ook over de hele "public void paint" heenmoeten??? :?
Eigenlijk zou niemand op deze vraag moeten antwoorden, want je moet toch echt zelf iets meer verdiepen in de flow van een programmeertaal. :>

{signature}


Verwijderd

Topicstarter
Voutloos schreef op dinsdag 04 oktober 2005 @ 20:29:
[...]

Eigenlijk zou niemand op deze vraag moeten antwoorden, want je moet toch echt zelf iets meer verdiepen in de flow van een programmeertaal. :>
ik snap dat ik vrij veel vraag, maar ik ben nog afhankelijk van jullie antwoorden. aangezien ik er pas mee begonnen ben.

  • whoami
  • Registratie: December 2000
  • Laatst online: 29-04 13:16
Syntax-errors zijn iets wat je - mits een beetje moeite - toch wel zelf moet kunnen oplossen hoor.

De compiler zegt al wat er niet goed is, waar je (ongeveer) moet gaan zoeken. Dan moet het toch een makkie zijn om het te fixen ? Het vergt misschien wat oefening in 't begin, maar IMHO is het niet nodig om daar een topic voor te openen.

https://fgheysels.github.io/

Pagina: 1

Dit topic is gesloten.