probleem met saldo script

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Klaas vieren

klaas vieren

01/01/2011 01:30:29
Quote Anchor link
Hallo mensen, ik heb hulp nodig en hoop dat iemand mij mee kan helpen..

Ik heb namelijk de volgende script gemaakt:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
echo "Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000
  willen we de do-while-lus herhalen<br />"
;
$saldo = 100;
$rente = 0.1;
$maand = 1;

echo "Begin saldo is:" . $saldo;
echo "<br>START...";
do
{
$saldo = $saldo + ($saldo * $rente);
echo "<br />Maand " . $maand . " je saldo is: " . $saldo ;
$maand++;

if($maand == 2)
{

echo "<br />Februari telt niet mee.";
break;
}


if($maand == 6 && $saldo < 1000)
{

echo "<br />Je saldo is te laag.";
exit;
}


?>



Alleen kom ik niet uit met het break, continue en exit? Wat doe ik verkeerd? Als ik de break gebruik, dan stop het en weet ik niet meer hoe ik het verder moet laten spelen..

Alvast HARTELIJK bedankt voor de hulp!!!

Mod edit The Dutch Guy:
Graag in het vervolg een duidelijke titel gebruikt in plaats van HULP NODIG.
Gewijzigd op 01/01/2011 01:39:52 door Bas IJzelendoorn
 
PHP hulp

PHP hulp

01/12/2020 13:00:34
 
Bas IJzelendoorn
Beheerder

Bas IJzelendoorn

01/01/2011 01:39:21
Quote Anchor link
Je zou beter naar de functie switch moeten gaan kijken. Je haalt nu if en else met switch door elkaar.
 
Klaas vieren

klaas vieren

01/01/2011 23:06:02
Quote Anchor link
The Dutch Guy op 01/01/2011 01:39:21:
Je zou beter naar de functie switch moeten gaan kijken. Je haalt nu if en else met switch door elkaar.


Dank u voor de reactie. Kunt u me misschien helpen hoe ik het dan wel moet, want ik begrijp het niet zo echt..
 
Bas IJzelendoorn
Beheerder

Bas IJzelendoorn

01/01/2011 23:15:58
Quote Anchor link
Kijk anders hier even naar switch() -> php.net
 
Bas Cost Budde

Bas Cost Budde

01/01/2011 23:43:39
Quote Anchor link
Schrijf ook in natuurlijke taal op wat je wil bereiken. Dat heb je misschien allang gedaan; plak dat dan hier in :)
 
Klaas vieren

klaas vieren

02/01/2011 00:03:44
Quote Anchor link
Bas Cost Budde op 01/01/2011 23:43:39:
Schrijf ook in natuurlijke taal op wat je wil bereiken. Dat heb je misschien allang gedaan; plak dat dan hier in :)


Dank je voor je reactie!

Ik heb de volgende code:


Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
echo "Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000
  willen we de do-while-lus herhalen<br />"
;
$saldo = 100;
$rente = 0.1;
$maand = 1;

echo "Begin saldo is:" . $saldo;
echo "<br>START...";
do
{
$saldo = $saldo + ($saldo * $rente);
echo "<br />Maand " . $maand . " je saldo is: " . $saldo ;
$maand++;

if($maand == 2)
{

echo "<br />Februari telt niet mee.";
continue;
}


if($maand == 6 && $saldo < 1000)
{

echo "<br />Je saldo is te laag.";
exit;
}
}


while($saldo < 2000);

echo "<br />Maximale saldo 2000 is bereikt. <br />";

?>


Nu is het probleem, dat wanneer de iteratie verder gaat, dat het vanaf de tweede gaat. Terwijl ik aangaf, dat wanneer de tweede maand is, de volgende echo moet worden neergezet: Februari telt niet mee.. dan zou het met de derde verder gaan, dat gebeurt dus niet...

Dus het geeft wel aan dat Februari niet meetelt, maar het gaat alsnog verder met de tweede maand in plaats van de derde maand..

alvast bedankt voor je hulp!

Toevoeging op 02/01/2011 00:09:05:

Beste Bas,

het moet er als volgt uitzien:

Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000 willen we de do-while-lus herhalen
Begin saldo is:100
START...
Maand 1 je saldo is: 110
Februari telt niet mee.
Maand 3 je saldo is: 121
Maand 4 je saldo is: 133.11
Maand 5 je saldo is: 146.41
Je saldo is te laag.


Maar het ziet er dus nu zo uit:

Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000 willen we de do-while-lus herhalen
Begin saldo is:100
START...
Maand 1 je saldo is: 110
Februari telt niet mee.
Maand 2 je saldo is: 121
Maand 3 je saldo is: 133.1
Maand 4 je saldo is: 146.41
Maand 5 je saldo is: 161.051
Je saldo is te laag.
Gewijzigd op 02/01/2011 00:06:51 door klaas vieren
 
Bas Cost Budde

Bas Cost Budde

02/01/2011 00:09:05
Quote Anchor link
Wat bedoel ik dan met 'natuurlijke taal'? Nou een keer zonder code-tags (en dus zonder php) :) Doen we even een stukje analyse samen.
 
Klaas vieren

klaas vieren

02/01/2011 00:11:17
Quote Anchor link
Bas Cost Budde op 02/01/2011 00:09:05:
Wat bedoel ik dan met 'natuurlijke taal'? Nou een keer zonder code-tags (en dus zonder php) :) Doen we even een stukje analyse samen.


Haha, dacht ik al. Heb ik nu wel toegevoegd! Dank je voor d moeite.
 
Bas Cost Budde

Bas Cost Budde

02/01/2011 00:13:05
Quote Anchor link
Wat gebeurt er nou in maand 6?
 
Klaas vieren

klaas vieren

02/01/2011 00:14:36
Quote Anchor link
Bas Cost Budde op 02/01/2011 00:13:05:
Wat gebeurt er nou in maand 6?


Het was de bedoeling dat ik dan de exit tag moet gebruiken om het hele script te laten stoppen (en te echoen JE saldo is te laag), dus die werkt gelukkig wel. Ik begrijp alleen niet waarom bij de tweed maand februari telt niet mee staat en het verder gaat met de tweede maand..
Gewijzigd op 02/01/2011 00:15:17 door klaas vieren
 
Bas Cost Budde

Bas Cost Budde

02/01/2011 00:17:55
Quote Anchor link
Ah. Je drukt die bedoeling niet goed uit door in de while-conditie naar het saldo te kijken.

Is dit een goede samenvatting van het proces:

* start met 100, maand 1
* voeg bijna elke maand 10% rente toe
* is de maand 2, doe dan even niets
* is het saldo groter dan 2000, verlaat dan de lus
* is de maand 6, beeindig dan de lus

?
 
- SanThe -

- SanThe -

02/01/2011 00:20:06
Quote Anchor link
Zeer vreemd script.

Als je de exit verwijderd dan gaat ie door tot 2000 is bereikt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
echo "Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000
  willen we de do-while-lus herhalen<br />"
;
$saldo = 100;
$rente = 0.1;
$maand = 1;

echo "Begin saldo is:" . $saldo;
echo "<br>START...";
do
{
    $saldo = $saldo + ($saldo * $rente);
    echo "<br />Maand " . $maand . " je saldo is: " . $saldo ;
    $maand++;
    if($maand == 13)
    {

        $maand = 1;
    }

    if($maand == 2)
    {

        echo "<br />Februari telt niet mee.";
        $maand++;
    }

    
    if($maand == 6 && $saldo < 1000)
    {

        echo "<br />Je saldo is te laag.";
        exit;
    }
}
while($saldo < 2000);

echo "<br />Maximale saldo 2000 is bereikt. <br />";

?>
Gewijzigd op 02/01/2011 00:21:29 door - SanThe -
 
Klaas vieren

klaas vieren

02/01/2011 00:20:49
Quote Anchor link
Bas Cost Budde op 02/01/2011 00:17:55:
Ah. Je drukt die bedoeling niet goed uit door in de while-conditie naar het saldo te kijken.

Is dit een goede samenvatting van het proces:

* start met 100, maand 1
* voeg bijna elke maand 10% rente toe
* is de maand 2, doe dan even niets
* is het saldo groter dan 2000, verlaat dan de lus
* is de maand 6, beeindig dan de lus

?


Hm, oke op die manier.

JA, dat klopt helemaal! Dus bij de 2e maand even niets doen, maar wel aangeven dat die maand niet telt. Saldo groter dan 2000 inderdaad verlaten en bij de 6e maand (indien die ook minder dan 1000 euro is) het beeindigen ervan.

Kun je me misschien svp hiermee helpen hoe ik het moet wijzigen? Het is maar voor school en heb nog 4 grote soort gelijke opdrachten (van de 13 moet ik dus nog 5 inclusief deze en doe er nu al bijna 5 dagen over haha... en 3 dagen geleden was ik serieus 8 uur bezig tot in de ochtend en had drie opdrachten klaar).



Toevoeging op 02/01/2011 00:24:43:

- SanThe - op 02/01/2011 00:20:06:
Zeer vreemd script.

Als je de exit verwijderd dan gaat ie door tot 2000 is bereikt.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
echo "Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000
  willen we de do-while-lus herhalen<br />"
;
$saldo = 100;
$rente = 0.1;
$maand = 1;

echo "Begin saldo is:" . $saldo;
echo "<br>START...";
do
{
    $saldo = $saldo + ($saldo * $rente);
    echo "<br />Maand " . $maand . " je saldo is: " . $saldo ;
    $maand++;
    if($maand == 13)
    {

        $maand = 1;
    }

    if($maand == 2)
    {

        echo "<br />Februari telt niet mee.";
        $maand++;
    }

    
    if($maand == 6 && $saldo < 1000)
    {

        echo "<br />Je saldo is te laag.";
        exit;
    }
}
while($saldo < 2000);

echo "<br />Maximale saldo 2000 is bereikt. <br />";

?>


Klopt, dat is de bedoeling ook. Bij maand 6 (indien deze lager is dan 1000 euro moet je het beeindigen)

Toevoeging op 02/01/2011 00:28:03:

- SanThe - op 02/01/2011 00:20:06:
Zeer vreemd script.

Als je de exit verwijderd dan gaat ie door tot 2000 is bereikt.


Hey! Het is gelukt! Ik dacht dat je alleen kritiek op me had, maar zie nu pas in dat je het voor me hebt gewijzigd! Hey, ik wil je hartelijk bedanken!

En reactie op je opmerking zeer vreemd script (it's for school haha..)

Nogmaals merci!

Toevoeging op 02/01/2011 00:28:32:

Het is gelukt mensen! Ik wil daarvoor TheSanthe bedanken en Bas voor de input!

Toevoeging op 02/01/2011 00:32:06:

SanThe, nog een vraagje. Ik zie dat er geen continue tag is gebruikt? Ik moet die denk ik wel degelijk gebruiken.. weet je misschien waar ik die dan kan toepassen..
 
- SanThe -

- SanThe -

02/01/2011 00:32:47
Quote Anchor link
Zie je nu ook wat de belangrijkste wijziging is?

Ik heb continue; veranderd in $maand++;
 
Klaas vieren

klaas vieren

02/01/2011 00:35:16
Quote Anchor link
SanThe, ik zie wat je hebt gedaan. Je hebt de $maand++; tag gebruikt. In principe zeg je vanaf daar, dat het een extra verder gaat. Maar ik denk niet dat dat wordt goedgekeurd, omdat ik toch de continue/break/exit tags moet gebruiken voor deze opdracht.. weet je misschien hoe ik het kan wijzigen?
 
Bas Cost Budde

Bas Cost Budde

02/01/2011 00:35:40
Quote Anchor link
Wat je moet leren, is op de manier kijken zoals ik dat deed: wel in het proces, niet in de programmacode. Stap voor stap formuleren wat je wil. Wees precies.
 
Klaas vieren

klaas vieren

02/01/2011 00:36:38
Quote Anchor link
- SanThe - op 02/01/2011 00:32:47:
Zie je nu ook wat de belangrijkste wijziging is?

Ik heb continue; veranderd in $maand++;


Ja klopt, ik heb net na jou gereageerd. Ik zag dat en daarom heb ik bovenstaande gereageerd.. het is toch écht de bedoeling om de continue tag te gebruiken.. weet je misschien hoe ik die alsnog kan implementeren?

de vragen waren eigenlijk:

• Als $maand gelijk is aan 2 dan geef je de melding: “februari telt niet mee” daarna onderbreek je de huidige iteratie en begin je met de volgende iteratie.
• Als het huidige $saldo over de 2000 is dan geef je de melding: “Maximale saldo 2000 is bereikt” en daarna onderbreek je de hele lus opdracht.
• Als $maand gelijk is aan 6 en $saldo onder de 1000 is dan geef je de melding: “Je saldo is te laag” daarna onderbreek je het script.


Toevoeging op 02/01/2011 00:38:36:

Bas Cost Budde op 02/01/2011 00:35:40:
Wat je moet leren, is op de manier kijken zoals ik dat deed: wel in het proces, niet in de programmacode. Stap voor stap formuleren wat je wil. Wees precies.


Ja, dat zal ik voortaan doen. Ik neig eerder naar de code, dan wat ik echt wil. Ik heb voor je de vragen letterlijk gekopieerd:


• Als $maand gelijk is aan 2 dan geef je de melding: “februari telt niet mee” daarna onderbreek je de huidige iteratie en begin je met de volgende iteratie.
• Als het huidige $saldo over de 2000 is dan geef je de melding: “Maximale saldo 2000 is bereikt” en daarna onderbreek je de hele lus opdracht.
• Als $maand gelijk is aan 6 en $saldo onder de 1000 is dan geef je de melding: “Je saldo is te laag” daarna onderbreek je het script.

Dus in principe moet ik toch écht de break/continue en exit tag gebruiken.. weet jij misschien hoe?
 
- SanThe -

- SanThe -

02/01/2011 00:41:11
Quote Anchor link
Deze werkt met continue.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
echo "Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000
  willen we de do-while-lus herhalen<br />"
;
$saldo = 100;
$rente = 0.1;
$maand = 0;

echo "Begin saldo is:" . $saldo;
echo "<br>START...";
do
{
    $maand++;
    if($maand == 2)
    {

        echo "<br />Februari telt niet mee.";
        continue;
    }

    $saldo = $saldo + ($saldo * $rente);
    if($maand == 6 && $saldo < 1000)
    {

        echo "<br />Je saldo is te laag.";
        exit;
    }

    echo "<br />Maand " . $maand . " je saldo is: " . $saldo ;
}
while($saldo < 2000);

echo "<br />Maximale saldo 2000 is bereikt. <br />";

?>


Toevoeging op 02/01/2011 00:47:43:

Bas Cost Budde op 02/01/2011 00:17:55:
Is dit een goede samenvatting van het proces:

* start met 100, maand 1
* voeg bijna elke maand 10% rente toe
* is de maand 2, doe dan even niets
* is het saldo groter dan 2000, verlaat dan de lus
* is de maand 6, beeindig dan de lus


Regel 2 en 3 moeten omgewisseld.

* start met 100, maand 1
* is de maand 2, doe dan even niets
* voeg bijna elke maand 10% rente toe
* is het saldo groter dan 2000, verlaat dan de lus
* is de maand 6, beeindig dan de lus
 
Klaas vieren

klaas vieren

02/01/2011 01:10:35
Quote Anchor link
- SanThe - op 02/01/2011 00:41:11:
Deze werkt met continue.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
echo "Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000
  willen we de do-while-lus herhalen<br />"
;
$saldo = 100;
$rente = 0.1;
$maand = 0;

echo "Begin saldo is:" . $saldo;
echo "<br>START...";
do
{
    $maand++;
    if($maand == 2)
    {

        echo "<br />Februari telt niet mee.";
        continue;
    }

    $saldo = $saldo + ($saldo * $rente);
    if($maand == 6 && $saldo < 1000)
    {

        echo "<br />Je saldo is te laag.";
        exit;
    }

    echo "<br />Maand " . $maand . " je saldo is: " . $saldo ;
}
while($saldo < 2000);

echo "<br />Maximale saldo 2000 is bereikt. <br />";

?>


Toevoeging op 02/01/2011 00:47:43:

Bas Cost Budde op 02/01/2011 00:17:55:
Is dit een goede samenvatting van het proces:

* start met 100, maand 1
* voeg bijna elke maand 10% rente toe
* is de maand 2, doe dan even niets
* is het saldo groter dan 2000, verlaat dan de lus
* is de maand 6, beeindig dan de lus


Regel 2 en 3 moeten omgewisseld.

* start met 100, maand 1
* is de maand 2, doe dan even niets
* voeg bijna elke maand 10% rente toe
* is het saldo groter dan 2000, verlaat dan de lus
* is de maand 6, beeindig dan de lus


Het werkt wel, maar ik moet deze uitkomst hebben:

Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000 willen we de do-while-lus herhalen
Begin saldo is:100
START...
Maand 1 je saldo is: 110
Februari telt niet mee.
Maand 3 je saldo is: 121
Maand 4 je saldo is: 133.11
Maand 5 je saldo is: 146.41
Je saldo is te laag.


Ik krijg echter deze uitkomst:

Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000 willen we de do-while-lus herhalen
Begin saldo is:100
START...
Maand 1 je saldo is: 110
Februari telt niet mee.
Maand 3 je saldo is: 133.1
Maand 4 je saldo is: 146.41
Maand 5 je saldo is: 161.051
Je saldo is te laag.

Het lijkt alsof het de maand met salaris overslaat. In principe denk ik dat het de hele maand februari moet negeren (dus zonder die mee te rekenen). Zou beetje dom zijn als iemand de maand februari niet mee telt, maar ondertussen in de derde maand net zo veel rente heeft gevraagd als de maand ervoor die eigenlijk niet mee telde..
 
- SanThe -

- SanThe -

02/01/2011 02:25:31
Quote Anchor link
Bij mij geeft het dit:

Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000 willen we de do-while-lus herhalen
Begin saldo is:100
START...
Maand 1 je saldo is: 110
Februari telt niet mee.
Maand 3 je saldo is: 121
Maand 4 je saldo is: 133.1
Maand 5 je saldo is: 146.41
Je saldo is te laag.
 
Klaas vieren

klaas vieren

02/01/2011 03:14:16
Quote Anchor link
- SanThe - op 02/01/2011 02:25:31:
Bij mij geeft het dit:

Reken het saldo uit. Daarna, zolang ons saldo lager is dan 2000 willen we de do-while-lus herhalen
Begin saldo is:100
START...
Maand 1 je saldo is: 110
Februari telt niet mee.
Maand 3 je saldo is: 121
Maand 4 je saldo is: 133.1
Maand 5 je saldo is: 146.41
Je saldo is te laag.


Hm, vreemd. Ik heb het gekopieerd en geplakt en het werkt. Ik heb geen verschillen kunnen constateren! Nou, eindelijk! Hartelijk bedankt voor de moeite en hulp SanThe!

9 down, 4 to go! Ik zal wss wel de problemen die ik tegemoet kom hier plaatsen. Ik hoop dat je me dan ook hiermee kunt helpen! Merci!
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.