[Java] Hoe loopen -> krijg geen result

Pagina: 1
Acties:

  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Van onderstaande code wil ik een do/while loop maken en dat lukt me ook een heel eind. Het enigste probleem is dat hij wel een loop vormt, alleen hij doet 1 deel verkeerd en ik weet niet waarom.

Wat doet hij namelijk:

- Hij gooit steeds hetvolgende achterelkaar, het menu wat ik gemaakt hebt, alleen vergeet hij de waardes te printen als ik bijvoorbeeld op 1 druk.


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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
import element.*;

public class koffiemachine
{
    static ConsoleWindow c;

    public static void main(String args[])
    {
        Koffiemachine3 apparaat = new Koffiemachine3();

        c = new ConsoleWindow();
        int keuze, melk2=50, suiker2=50, koffie2=50, thee2=50, warmwater2=50, koudwater2=50, chocolade2=50;
        int koffie, melk, suiker, thee, chocolade, koudwater, warmwater;

        apparaat.melk1 = melk2;
        apparaat.suiker1 = suiker2;
        apparaat.koffie1 = koffie2;
        apparaat.thee1 = thee2;
        apparaat.warmwater1 = warmwater2;
        apparaat.koudwater1 = koudwater2;
        apparaat.chocolade1 = chocolade2;

        do
        {
        c.out.println("1.  Koffie zonder suiker en melk");
        c.out.println("2.  Koffie met suiker zonder melk");
        c.out.println("3.  Koffie zonder suiker met melk");
        c.out.println("4.  Koffie met suiker en melk");
        c.out.println("5.  Thee");
        c.out.println("6.  Warme Chocolademelk");
        c.out.println("7.  Koude Chocolademelk");
        c.out.println("Kies de gewenste drank?");

        keuze = c.input.readInt();

        }

        while(keuze > 0 | keuze < 7);
        {
    switch(keuze)
        {
            case 1:
            {
                koffie = (-1);
        melk = 0;
        suiker = 0;
        thee = 0;
                chocolade = 0;
                koudwater = 0;
                warmwater = (-1);
              c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");
                break;
      }
      case 2:
            {
                koffie = -1;
        melk = 0;
        suiker = -1;
        thee = 0;
                chocolade = 0;
                koudwater = 0;
                warmwater = -1;
              c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");
                break;
      }
      case 3:
            {
                koffie = -1;
        melk = -1;
        suiker = 0;
        thee = 0;
                chocolade = 0;
                koudwater = 0;
                warmwater = -1;
                c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");
                break;
      }
      case 4:
            {
                koffie = -1;
        melk = -1;
        suiker = -1;
        thee = 0;
                chocolade = 0;
                koudwater = 0;
                warmwater = -1;
                c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");
                break;
      }
      case 5:
            {
                koffie = 0;
        melk = 0;
        suiker = 0;
        thee = -1;
                chocolade = 0;
                koudwater = 0;
                warmwater = -1;
                c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");
              break;
      }
      case 6:
      {
        koffie = 0;
        melk = 0;
        suiker = 0;
        thee = 0;
                chocolade = -1;
                koudwater = 0;
                warmwater = -1;
              c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");
                break;
      }
      case 7:
      {
        koffie = 0;
        melk = 0;
        suiker = 0;
        thee = 0;
                chocolade = -1;
                koudwater = -1;
                warmwater = 0;
          c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!");
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");
                break;
      }
  }
  }
 }
}

  • Stubby
  • Registratie: Januari 2002
  • Laatst online: 10:19
Woei! Wat een lap zeg, alleen is je uitleg niet helemaal duidelijk... Ik vraag me af waarom de variabelen koffie melk suiker etc gedefinieerd worden in Main en waarom dit geen private variabelen van de klasse apparaat zijn, ik denk dat dat je probleem is... In dit geval zou trouwens een linkje naar de source handiger zijn dan de hele lap text :D

edit:

oepsie... ik zag later dat de variabelen ook in de klasse apparaat zitten... never mind, maar ik snap je probleem nog steeds niet

[ Voor 19% gewijzigd door Stubby op 20-05-2003 21:42 ]


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22-08 10:45

mulder

ik spuug op het trottoir

Als | in java een OR is dan is dat al 1 ding wat niet klopt.

Tot zover * mulder in een java topic

oogjes open, snaveltjes dicht


  • silentsnow
  • Registratie: Maart 2001
  • Laatst online: 15-04-2013

silentsnow

« '-_-' »

while(keuze > 0 | keuze < 7);

Moet dat niet zijn:

while(keuze > 0 || keuze < 7);

:?

The trade of the tools
[ me | specs ] Klipsch Promedia Ultra 5.1 + Sennheiser HD-590


  • mulder
  • Registratie: Augustus 2001
  • Laatst online: 22-08 10:45

mulder

ik spuug op het trottoir

while((keuze > 0) && (keuze < 8)) zo dan?

oogjes open, snaveltjes dicht


  • momania
  • Registratie: Mei 2000
  • Laatst online: 10:59

momania

iPhone 30! Bam!

Wat je nu doet is dit:
Java:
1
2
3
4
5
6
do {

} while (bla);
{
  //hier staat je switch en die wordt nooit uitgevoerd.
}


Zo is dus beter:
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
do {
    // hier print je je vraag op het scherm

    // bij je readInt() wacht de code als het goed is, tot er input is

    // hier ga je dan direct verder met je switch waarin je alleen je variabelen vult
    // voor iedere optie al die regels printen is overkill
    // dat doe je na je switch:

    switch (input) {

         case 1:
              // zet je waardes
              break;
         case 1:
              // zet je waardes
              break;
         case 1:
              // zet je waardes
              break;
    }

    // hier dus alles op het scherm printen.
} while (bla);

Neem je whisky mee, is het te weinig... *zucht*


  • silentsnow
  • Registratie: Maart 2001
  • Laatst online: 15-04-2013

silentsnow

« '-_-' »

while(keuze = 0 || keuze = 1 || keuze = 2 || keuze = 3 || keuze = 4 || keuze = 5 || keuze = 6 || keuze = 7 );

Dat kan toch? Het is natuurlijk niet efficient, maar volgens mij moet dat zo kunnen.

The trade of the tools
[ me | specs ] Klipsch Promedia Ultra 5.1 + Sennheiser HD-590


  • 4VAlien
  • Registratie: November 2000
  • Laatst online: 02-08 23:13

4VAlien

Intarweb!

ja die logic OR is met twee pipes .. En het is misschien makkelijker om

Java:
1
2
3
4
5
6
7
            c.out.println("Er is nog voor: " +apparaat.koffieberekenen(koffie) + " maal koffie aanwezig!"); 
              c.out.println("Er is nog voor: " +apparaat.melkberekenen(melk) + " maal melk aanwezig!"); 
              c.out.println("Er is nog voor: " +apparaat.suikerberekenen(suiker) + " maal suiker aanwezig!"); 
              c.out.println("Er is nog voor: " +apparaat.theeberekenen(thee) + " maal thee aanwezig!"); 
              c.out.println("Er is nog voor: " +apparaat.chocoladeberekenen(chocolade) + " maal chocolade aanwezig!"); 
              c.out.println("Er is nog voor: " +apparaat.koudwaterberekenen(koudwater) + " maal koudwater aanwezig!"); 
              c.out.println("Er is nog voor: " +apparaat.warmwaterberekenen(warmwater) + " maal warmwater aanwezig!");

alleen helemaal aan het eind te printen? wordt het stuk overzichtelijker van. Het statement
Java:
1
while(keuze > 0 || keuze < 7);

klopt ook niet omdat het zowel -1 als 8 accepteert (het is -1 > 0 = false OR -1<7 = true) dus False OR True = True :-) los dit op met &&

[ Voor 36% gewijzigd door 4VAlien op 20-05-2003 21:51 ]


  • NetForce1
  • Registratie: November 2001
  • Laatst online: 23:21

NetForce1

(inspiratie == 0) -> true

Waarom een while loop, de variabele keuze verandert niet, je krijgt dus een oneindig loop volgens mij. gelul
Je voorwaarde klopt ook niet, die is altijd true, ik zou gaan voor zoiets:
Java:
1
if ((keuze > 0) && (keuze < 8))


edit:
Volgende keer eerst F5 :z

[ Voor 18% gewijzigd door NetForce1 op 20-05-2003 21:52 ]

De wereld ligt aan je voeten. Je moet alleen diep genoeg willen bukken...
"Wie geen fouten maakt maakt meestal niets!"


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
momania schreef op 20 May 2003 @ 21:44:
Wat je nu doet is dit:
Java:
1
2
3
4
5
6
do {

} while (bla);
{
  //hier staat je switch en die wordt nooit uitgevoerd.
}


Zo is dus beter:
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
do {
    // hier print je je vraag op het scherm

    // bij je readInt() wacht de code als het goed is, tot er input is

    // hier ga je dan direct verder met je switch waarin je alleen je variabelen vult
    // voor iedere optie al die regels printen is overkill
    // dat doe je na je switch:

    switch (input) {

         case 1:
              // zet je waardes
              break;
         case 1:
              // zet je waardes
              break;
         case 1:
              // zet je waardes
              break;
    }

    // hier dus alles op het scherm printen.
} while (bla);
StomStomStom van mij, idd het moest zo, van een dagje JAVA doen wordt je ook best gaar. Nu moet ik het even veranderen dat de waardes worden onthouden die steeds in de loop worden berekend en dan ben ik klaar voor vandaag.

Misschien dat iemand dat hier zo kan zien, want blijkbaar is dat dus ook fout. Ik had verwacht dat die waarde wel werd onthouden ben blijkbaar ergens iets vergeten

[ Voor 7% gewijzigd door BSeB op 20-05-2003 22:10 ]


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
Hij is af, thnx voor jullie snelle hulp

  • momania
  • Registratie: Mei 2000
  • Laatst online: 10:59

momania

iPhone 30! Bam!

Wat is KoffieMachine3 ??
Is dat een zelfde soort class als in je startpost, of is het precies de zelfde?
En waarom hou je dan daar je koffie/suiker/etc standen bij?

Neem je whisky mee, is het te weinig... *zucht*


  • ikke_
  • Registratie: Juni 1999
  • Laatst online: 14-08 12:31
Is het niet mooier om in het apparaat (class Koffiemachine3) bij te houden wat alles gebruikt. Dus bijvoorbeeld een functie:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
public boolean zetKoffie(boolean bSuiker, boolean bMelk) {
  mKoffie -= 1;
  mWarmwater = -1;

  if (bMelk) {
    mMelk -= 1;
  }
  if (bSuiker) {
    mSuiker = -1;
  }
  //in de boolean terug geven of er iets op is
  return kanKoffieZetten;
}


En deze functie aanroepen in in de betreffende switch en ook c.out dingen in een apparte functie zetten bv printTegoeden() en daarin de functies printen apparaat.koffieberekenen() zonder input parameter

[ Voor 3% gewijzigd door ikke_ op 20-05-2003 22:52 ]


  • BSeB
  • Registratie: Juni 2001
  • Laatst online: 22-09-2025
momania schreef op 20 May 2003 @ 22:32:
Wat is KoffieMachine3 ??
Is dat een zelfde soort class als in je startpost, of is het precies de zelfde?
En waarom hou je dan daar je koffie/suiker/etc standen bij?
Klopt :)

Verwijderd

Misschien even de Douwe Egberts koffie manager downloaden :)
Pagina: 1