If functie

Status
Niet open voor verdere reacties.

snorifu

Gebruiker
Lid geworden
10 mei 2010
Berichten
42
Hallo,
Ik ben nog niet zo lang bezig met c++ en heb me net aangemeld voor dit forum.
Ik heb een stuk code die niet goed werkt, kan iemand mij vertellen wat er mis is met mijn code?
Code:
#include<iostream>
#include<math.h>
using namespace std;
int main()
{
    int a,b,c;
cin >> c;
cout << c << endl;

if (c=0
)
{
        cout << "FALSE\n";
}
else if (c=1)
{
cout << "TRUE\n";
}
else
{
    cout << "ERROR\n";
}
system ("pause");
return 0;
}
Alvast bedankt.
 
In plaats van een enkele '=' voor controle moet je twee '='-sjes gebruiken, dus
[cpp]
else if (c==1)
[/cpp]
 
Oh ja is ook zo bedankt
Kon er niet op komen en heb het denk ik over het hoofd gezien op internet:rolleyes:
 
gewoon even om iets bij te leren

Code:
if (c=0
)
{
        cout << "FALSE\n";
}
else if (c=1)
{
cout << "TRUE\n";
}
else
{
    cout << "ERROR\n";
}

is hetzelfde als

Code:
if (!c)       cout << "FALSE\n";

else if (c)          cout << "TRUE\n";

else    cout << "ERROR\n";

dat is tog stukken makkelijk en gebruikt nog minder memroy ook
 
Laatst bewerkt:
gewoon even om iets bij te leren

Code:
if (c=0
)
{
        cout << "FALSE\n";
}
else if (c=1)
{
cout << "TRUE\n";
}
else
{
    cout << "ERROR\n";
}

is hetzelfde als

Code:
if (!c)       cout << "FALSE\n";

else if (c)          cout << "TRUE\n";

else    cout << "ERROR\n";

dat is tog stukken makkelijk en gebruikt nog minder memroy ook

Deze twee stukken code zijn niet gelijk. Elke waarde ongelijk aan 0 is true. Als 'c' bijvoorbeeld 6 is zal met de oorspronkelijke code "ERROR\n" worden getoond (met dubbele '='-tekens ten minste). De nieuwe code zal "TRUE\n" tonen.
 
Laatst bewerkt:
Deze twee stukken code zijn niet gelijk. Elke waarde ongelijk aan 0 is true. Als 'c' bijvoorbeeld 6 is zal met de oorspronkelijke code "ERROR\n" worden getoond (met dubbele '='-tekens ten minste). De nieuwe code zal "TRUE\n" tonen.

maar het is wel wat hij bedoelde
 
Knap dat jij helderziende bent Scotty, voor zover ik kan lezen is nergens verteld wat de exacte bedoeling van deze code hier moet zijn.. En als hij dat inderdaad bedoelde dan is de laatste if/else overbodig en kan deze rechtstreeks in de eerste else. In dat geval is het ook sneller/beter om op de geldigheid te testen, en niet op de negatie (extra bewerking) Zo dus:[cpp]if (c)
{
cout << "TRUE" << endl;
}
else
{
cout << "FALSE" << endl;
}[/cpp]

Bovendien valt er ook wat te zeggen over de eventuele leesbaarheid van je condensed code. Als je dan toch helemaal condensed wil gaan, kan je zoiets proberen:[cpp]cout << (c? "TRUE" : "FALSE") << endl;[/cpp]
 
Laatst bewerkt:
Knap dat jij helderziende bent Scotty, voor zover ik kan lezen is nergens verteld wat de exacte bedoeling van deze code hier moet zijn.. En als hij dat inderdaad bedoelde dan is de laatste if/else overbodig en kan deze rechtstreeks in de eerste else. In dat geval is het ook sneller/beter om op de geldigheid te testen, en niet op de negatie (extra bewerking) Zo dus:[cpp]if (c)
{
cout << "TRUE" << endl;
}
else
{
cout << "FALSE" << endl;
}[/cpp]

Bovendien valt er ook wat te zeggen over de eventuele leesbaarheid van je condensed code. Als je dan toch helemaal condensed wil gaan, kan je zoiets proberen:[cpp]cout << (c? "TRUE" : "FALSE") << endl;[/cpp]

het meest logische lijkt me dit.

en de operator ? : vind ik persoonlijk altijd vervelend om terug te lezen, dus ik gebruik hem nooit
 
Okee bedankt voor julie reacties en excuses dat ik zo laat reageer, alleen snap eigenlijk niet helemaal wat onderstaande code betekent dit programma had ik nml geschreven om if onder die knie te krijgen. Wat is c?
Code:
 cout << (c? "TRUE" : "FALSE") << endl;
 
Okee bedankt voor julie reacties en excuses dat ik zo laat reageer, alleen snap eigenlijk niet helemaal wat onderstaande code betekent dit programma had ik namenlijk geschreven om de if statement onder die knie te krijgen. Maar wat is "c?" in deze code?
Code:
 cout << (c? "TRUE" : "FALSE") << endl;
 
De ?-operator kun je zien als een soort afkorting van de if-statement.
expressie ? statement1 : statement2; betekent: Als expressie waar is, voer statement1 uit. Anders, voer statement2 uit.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan