if-Abfrage funktioniert nicht
-
Hallo zusammen,
ich bin blutiger C++ Anfänger und habe ein Problem mit folgendem Code:#include <iostream>
using namespace std;int main()
{
char var;
double a1, a2, a3; // Eingaben
double b1, b2, b3; // Eingaben
double Dx; // Zählerdeterminante
double Dy; // Zählerdeterminante
double D; // Nennerdeterminante
double x, y;do { cout << "Bitte geben sie die Konstanten a1, a2, a3, sowie b1, b2, b3 mit Nachkommastellen ein! " << endl; cin >> a1; cin >> a2; cin >> a3; cin >> b1; cin >> b2; cin >> b3; Dx = (a3 * b2) - (a2 * b3); Dy = (a1 * b3) - (a3 * b1); D = (a1 * b2) - (a2 * b1); if (((a1 || a2) || (b1 || b2)) == 0) { cout << endl; cout << "Kein 2x2 System! " << endl; }
und zwar funktioniert hier die erste if-Bedingung nicht, dh. das Programm springt nicht in den Block obwohl eine der Variablen = 0 ist. Kann mir da jemand helfen?
-
Ich habe natürlich hier nur einen Teil des Codes kopiert...falls sich jemand wegen den nicht abgeschlossenen Klammern wundert.
-
Die Abfrage
if (x || y)
wird alsif (x != 0 || y != 0)
interpretiert.
Du mußt daher jede Abfrage auf== 0
einzeln aufschreiben:if (a1 == 0 || a2 == 0 || b1 == 0 || b2 == 0)
-
oder du nimmst eine und-verknüpfung. die ist immer dann gleich 0, wenn mindestens einer gleich 0 ist.