Statements

Status
Niet open voor verdere reacties.

BlackRedThunder

Gebruiker
Lid geworden
7 okt 2008
Berichten
36
Goeiedag

Ik heb als beginner een simpel oefening gemaakt met c++ code adhv statements

Code:
# include <iostream>

using namespace std;

int main()
{
	int a,b,c;

	cout << "Geef een eerste getal op:";
	cin >> a;
	cout << "Geef een tweede getal op:";
	cin >> b;
	cout << "Geef een derde getal op:";
	cin >> c;

	if (a && b == c)
	{
		cout << "De 3 waarden zijn gelijk\n";
	}

	else
	{
		if (a || b == c)
		{
			cout << "1 van de 2 waarden is gelijk aan de derde waarde\n";
		}

		else
		{
			cout << "Het zijn niet 3 gelijke waardens\n";
		}
	}
	
	

	system("PAUSE");
	return(0);
}

Als ik a, b en c dezelfde waarde geef, dan zegt hij "De 3 waarden zijn gelijk" => Is juist!
Als ik a, b en c alle drie verschillende waarden geef, zegt hij "1 van de 2 waarden is gelijk aan de derde" => Is niet juist!
Als ik a of b eenzelfde waarde geef als c, zegt hij "De 3 waarden zijn gelijk" => is niet juist!

Kan iemand me uitleggen hoe dit komt?

Alvast bedankt!
 
Code:
if (a && b == c)

Het bovenstaande doet waarschijnlijk niet wat je verwacht. Het controleert of 'a' niet gelijk is aan 0, en of b en c gelijk zijn.

Code:
if( (a == b) && (b == c))
   // alle drie zijn ze gelijk

Het bovenstaande doet wel wat je verwacht.

Code:
if (a || b == c)

Hier doe je hetzelfde. Je controleert of 'a' true is, en anders of 'b gelijk is aan c'.

Code:
if( (a == b) || (b == c))
   // een van de twee waardes is gelijk

Ik neem aan dat het nu wel duidelijk is ?
 
Code:
if (a && b == c)

Het bovenstaande doet waarschijnlijk niet wat je verwacht. Het controleert of 'a' niet gelijk is aan 0, en of b en c gelijk zijn.

Code:
if( (a == b) && (b == c))
   // alle drie zijn ze gelijk

Het bovenstaande doet wel wat je verwacht.

Code:
if (a || b == c)

Hier doe je hetzelfde. Je controleert of 'a' true is, en anders of 'b gelijk is aan c'.

Code:
if( (a == b) || (b == c))
   // een van de twee waardes is gelijk

Ik neem aan dat het nu wel duidelijk is ?

bedankt ;) versta het helemaal ;)
 
bedankt ;) versta het helemaal ;)

De haakjes zijn niet noodzakelijk ;)

Verder kun je hier ook de bitwise AND operator gebruiken:

Code:
bool check(const int a, const int b, const int c)
{
    return (a == b & b == c); // returnt true wanneer alles gelijk is
}
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan