Nur eine IF-Anweisung funktioniert!?
-
So ich schreibe gerade ein Mathe Programm und da funktioniert einiges nicht,d.h nur eine Schleife bricht ab,die andere funktioniert.
Ich habe das Volumen für zwei Körper,nähmlich für den Quader & Würfel geschrieben.
Daraus steht soetwas in der Art...//Quader if(cin>>quader) { if(quader = 'a') { //... Inhalt } else { //Fehlermeldung definieren... } } //Wuerfel if(cin>>wuerfel) { if(wuerfel = 'b') { //Blabla... } else { //Fehlermeldung } }Also soetwas in der Art habe ich programmiert und wenn ich zbsp. Quader(cin>>quader in die DOS eingebe...) auswähle,funktioniert er nur als einziger,der Würfel wird dagegen ingnoriert.
Aber wenn ich die Konsole nocheinmal starte und den Würfel-Code eher weiter oben als der Code(if..) schreibe und es kompiliere,funktioniert nur der Würfel,dafür aber nicht der Quader.
Ich hoffe ihr versteht mich

Besser erklären kann ich es nicht und den Code würde ich nie veröffentlichen,weil das so wie bei Spielen ist,jeder will den Code(^^)
und kopierts ab,also der Code ist ein Projekt von meiner Schule... und diesen hab ich als mein Projekt vorgestellt aber leider ohne Erfolg
Deswegen kann ich es wieder nächste Wochen neu machen

Primer
-
[cpp]
//Quader
if(cin>>quader)
{
if(quader = 'a')
{
//... Inhalt
} else {
//Fehlermeldung definieren...
}
break;
}//Wuerfel
if(cin>>wuerfel)
{
if(wuerfel = 'b')
{
//Blabla...
} else {
//Fehlermeldung
}
}
[/cpp]
ich glaub das sollte es sein ..bin mir aber nicht sicher
-
= != ==
-
ups ...camper hat recht ^^
ziemlich banal XD ..hab ich übersehen

-
//Quader if(cin>>quader) { if(quader = 'a') { //... Inhalt } else { //Fehlermeldung definieren... } [b]break;[/b] } //Wuerfel if(cin>>wuerfel) { if(wuerfel = 'b') { //Blabla... } else { //Fehlermeldung } }Also dazu kommt folgende Fehlermeldung:
break statement not within loop or switch
D.h vermutlich,dass es bei switch oder so sein sollte und nicht in ifAnweisungen ^^
Aber was wäre nun die Lösung?
-
if(quader == 'a')
-
Ist am Anfang etwas gewöhnungsbedürfdig, aber der Fehler erscheint nie mehr, wenn die Konstanten links stehen:
if ('a' == quader) ...
if ('a' = quader) ... gibt eine entsprechende Fehlermeldung
Gruss Robi
-
Robert.Sonderer schrieb:
Ist am Anfang etwas gewöhnungsbedürfdig, aber der Fehler erscheint nie mehr, wenn die Konstanten links stehen:
if ('a' == quader) ...
Leider geht es auch so nicht.Warum,weiss ich auch nicht 
Aber trodzdem danke für deine Hilfe
Gäbe es noch eine andere Lösung zu finden?
-
Was für ein Datentyp sind "quarder" und "wuerfel"?
grüße
-
David_pb schrieb:
Was für ein Datentyp sind "quarder" und "wuerfel"?
grüße
float
-
Dann ist ein Prüfen auf 'a' auch recht doof!
Nimm char oder std::string als Prüfvariable.grüße
-
[edit]gelöscht[/i]
-
David_pb schrieb:
Dann ist ein Prüfen auf 'a' auch recht doof!
Nimm char oder std::string als Prüfvariable.grüße
Nein,ich habe mich geiirt:
Beim Prüfen ... Char
Beim inneren ... floatalso ist nun 100% richtig,das was ich jetzt gesagt habe.. und nun?
Primer
-
Mich würd der vollständige Quellcode mal interessieren...
-
David_pb schrieb:
Mich würd der vollständige Quellcode mal interessieren...
int eins = 1; if(cin>>eins) { if(1 == eins) { cout<<"Drücke 1 .."<<endl; cout<<"a. Quader | b. Wuerfel"<<endl; } else if(1 != eins) { cout<<"Fehler"<<endl; } char quader = 'a'; char wuerfel = 'b'; ///Beginn if(cin>>quader) { if('a' == quader) { float a, b, hoehe; //...code... cout<<"....."<<endl; } else if('a' != quader) { cout<<"Fehler"<<endl; } } //Wuerfel if(cin>>wuerfel) { if('b' == wuerfel) { cout<<"..."<<endl; } else if('b' != wuerfel) { cout<<"Fehler"<<endl; } }also dieser Teil ist noch vollständen(fast) und den andere Quellcode habe ich nicht hergegeben,weil er mit diesem nichts zu tun hat,außer man berechnet etwas präziser,aber das hab ich ausgeschnitten

ALso ich weiss nicht,wo mein Fehler ist

-
Vielleicht in etwas so:
... cin >> eins; if(1 == eins) { ... cin >> auswahl; if('a' == auswahl) { // Quader ... } else if('b' == auswahl) { // Wuerfel ... } ... }oder versteh ich hier was komplett verkehrt?
-
NurZuBesuch schrieb:
Vielleicht in etwas so:
... cin >> eins; if(1 == eins) { ... cin >> auswahl; if('a' == auswahl) { // Quader ... } else if('b' == auswahl) { // Wuerfel ... } ... }oder versteh ich hier was komplett verkehrt?
geht leider noch immer nicht

Noch etwas vielleicht?
-
Primer schrieb:
Noch etwas vielleicht?

Sind wir hier beim Heiteren Coderaten?

Kreise den Fehler mal ein bis du uns vollständigen
Code mit Deklarationen schicken kannst.
-
[quote="Primer"]
//Quader if(cin>>quader) { if(quader = 'a') { //... Inhalt } else { //Fehlermeldung definieren... } [b]break;[/b] } //Wuerfel if(cin>>wuerfel) { if(wuerfel = 'b') { //Blabla... } else { //Fehlermeldung } }quote]
Wenn schon, quader == 'a' !!!!!
!!corvin
-
corvin1397 schrieb:
Wenn schon, quader == 'a' !!!!!
!!Soweit waren wir schon!
