Archief - [PROG][C++] weer een vraagje

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.

Spokos

Legacy Member
sry dat ik zoveel vragen stel, maar kzit weeral met 'n probleempje

dit is mn voorlopige code:

#include <iostream>
using namespace std;

int main()
{
int bediendenummer,kinderen,premie;
cout<<"Bediendenummer: ";
cin>>bediendenummer;
if (bediendenummer!=0)
{
cout<<"Aantal kinderen: ";
cin>>kinderen;
switch (kinderen)
{
case '0':
cout<<"Premie: geen premie";
break;
case '1':
cout<<"Premie: 25 euro";
break;
case '2':
cout<<"Premie: 65 euro";
break;
case '3':
cout<<"Premie: 100 euro";
break;
default:
premie=125+50*(kinderen-3);
cout<<"Premie: "<<premie<<" euro";
}
}
else
return 0;
}

maar nu zittik met 2 probleemtjes: 1)dat die switch case niet volledig werkt precies want alsik bv een 0 invoer voor aantal kinderen dan geeft ie -25 euro weer. hij pakt voor 0/1/2/3 dus de default?
2)Ik wil dat hij herhaaldelijk het bediendenummer/aantal kinderen/premie vraagt totdat het bediendenummer nul is, maw ik wil dat het er zo uitziet:vb:

Bediendenummer: 13
Aantal kinderen: 1
Premie: 25 euro

Bediendenummer: 13
Aantal kinderen: 4
Premie: 175 euro

Bediendenummer: 0

Iemand die me kan helpen??

forloRn_

Legacy Member
1) Doe de single quotes rond je constanten weg. '0' wordt dan bijvoorbeeld 0. Je bent nu characters aan het vergelijken in plaats van getallen.
2) if vervangen door een while (true) en if (bediendenummer == 0) break; binnen de lus.

Spokos

Legacy Member
kan anders iemand het even vervangen?:s
dan kannik het wat bestuderen

Spokos

Legacy Member
aaah ik hebbet door gwn 2 keer die bediendenummer schrijven met een while lus. merci!!!!

Tyfius

Legacy Member
Ik ben er wel niet zo voor te vinden, voor die while (true). Het is beter en duidelijker om een eenvoudige conditie in de while te zetten.

Albireo

Legacy Member
Ik zou de do-while loop willen voorstellen...

Code:
int bediendenummer,kinderen,premie;
do {
    cout<<"Bediendenummer: ";
    cin>>bediendenummer;
    if (bediendenummer!=0) {
        ...
    }
}
while(bediendenummer!=0);
return 0;

forloRn_

Legacy Member
Zonder die while (true) moet je inderdaad tweemaal je conditie checken, daar was ik dan weer niet voor te vinden.

killgore

Legacy Member
forloRn_ zei:
Zonder die while (true) moet je inderdaad tweemaal je conditie checken, daar was ik dan weer niet voor te vinden.

tja, ieder zijn smaken hoor, sommige programmeurs vinden break & continue walgelijk, anderen het overdreven veel checken.

Ik gebruik de 2 zaken dooreen, wat het best leesbaar is imho. Het enige dat ik echt vermijd zijn goto's :p. Want ivm "jumps" zijn er ook veel programmeurs die return statements in het midden van lussen in functies schrijven. Kvraag me dan af wat het gigantische verschil met een break is (want als die functie ge-inlined wordt is daar op assembler niveau zowat geen verschil meer tussen :p).
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