NO0b kommt...;)again;)
-
#include <iostream> using namespace std; void wait() { cin.clear(); cin.ignore(std::cin.rdbuf()->in_avail()); cin.get(); } short x = 0; int main() { cout << " Bitte gib einen Wert ein: "; cin >> x; if (x == 100 || x == 200 || x == 300 ) { cout << " x = " << x << '\n'; x = x*4; wait(); } else if (x >= 100 || x <= 110) { cout << " x = " << x << '\n'; x = 400; wait(); } else { cout << " x = " << x << '\n'; x = 0; wait(); } return 0; }
Wenn der Thread noch weitergeht wird mir schlecht
.
-
gegen wait habe ich was.
wenn schon auf nen tastendruck gewartet werden muss (was ich für völlig nutzlos halte, starte das prog doch aus der konsole!), dann auf keinen fall so, daß man es überhaupt nicht mehr durch eingabeumleitung fernsteuern kann.
-
volkard schrieb:
gegen wait habe ich was.
wenn schon auf nen tastendruck gewartet werden muss (was ich für völlig nutzlos halte, starte das prog doch aus der konsole!), dann auf keinen fall so, daß man es überhaupt nicht mehr durch eingabeumleitung fernsteuern kann.jep ersten das
und 2tens
@steff3
was bist du für ein programmierer/in ???
Will ja nichts sagen aber beisowas wird MIR schlecht. Da nützt dir dann der rote kopf auch nichts. du hast die fkt wait die in jedem case aufgerufen wird
dann schreib ( da es ja auf jeden fall gemacht werden soll ) doch bitte am schluss hin. sowas lernt mal eigentlich gleich am anfang beim thema funktionen
-
Sind If und Else-Zweige Funktionen ? Das die Funktion main nach dem beenden der Bedingungen weiter geht ist mir bekannt. Aber hat es jemanden geschadet, dass in jder klausel die Funktion aufgerufen wird?!? - nein
Und im übrigen mache ich das immer so, bei mir heißt das Übersicht.
-
steff3 schrieb:
Und im übrigen mache ich das immer so, bei mir heißt das Übersicht.
bei mir heisstd as unübersichtlich.
-
steff3 schrieb:
Sind If und Else-Zweige Funktionen ? Das die Funktion main nach dem beenden der Bedingungen weiter geht ist mir bekannt. Aber hat es jemanden geschadet, dass in jder klausel die Funktion aufgerufen wird?!? - nein
Und im übrigen mache ich das immer so, bei mir heißt das Übersicht.???
kannst du deutsch? ich sagte nicht, das if else fkt sind!ich meinte mit fkt das hier --> wait();
das ist überall drinnen. normalerweise rufst du das vorm return 0; auf! das ist übersichtlich
ausserdem
Aber hat es jemanden geschadet, dass in jder klausel die Funktion aufgerufen wird?!?
Das ist falsch. die fkt KANN nur in einem zweig aufgerufen, es wird nicht in jedem aufgerufen. aber egal.
naja schreib deinen unübersichtlichen code, wenn dein arbeitgeber nichts dagegen hat und es dir spass macht
-
@steff3
also wenn, dann auch bitte konsequent:
#include <iostream> using namespace std; void wait(); void foo(); void bar(); int main() { cout << " Bitte gib einen Wert ein: "; cin >> x; if ( do ) { cout << " x = " << x << '\n'; x = x*4; wait(); foo(); bar(); return 0; } else if ( someStuff) { cout << " x = " << x << '\n'; x = 400; wait(); foo(); bar(); return 0; } else { cout << " x = " << x << '\n'; x = 0; wait(); foo(); bar(); } } // anderes zeugs wie die wait implementation
-
Das ist mir schon klar das die Funktion nicht...
Das ist falsch. die fkt KANN nur in einem zweig aufgerufen, es wird nicht in jedem aufgerufen. aber egal.
es geht darum, dass für jede Klausel ein ordentlicher Abschluss gefunden wird.
kannst du deutsch?
Vorsicht
! Soll ich deine Fehler korrigieren?
Mehr als Satzanfänge schreibst du ja nicht groß.
-
steff3 schrieb:
Mehr als Satzanfänge schreibst du ja nicht groß.
1. ich sagte nicht
kannst du deutsch, und meinte rechtschreibung, sondern TEXTVERSTÄNDIS
2. ich sage es hier im forum gerne 1000 mal wieder
ich halte mich in mails und in foren nicht an den DUDEN!!!!
nur bei öffentl und bei geschätsschriftverkehr, sonst nicht! lass mir doch von einem herrn duden und das jetzige gremium nichts vorschreiben
so jetzt weisst du es auch
aber, ja textverstädnis habe ich meistens ( ausser ich bin grad dicht/müde/unaufmerksam )
so ich sag jetzt nichts mehr dazu
ausser
wait();
wait();
wait();
wait();
wait();
wait();
wait();
-
steff3 schrieb:
Das ist falsch. die fkt KANN nur in einem zweig aufgerufen, es wird nicht in jedem aufgerufen. aber egal.
es geht darum, dass für jede Klausel ein ordentlicher Abschluss gefunden wird.
dies ist schlechter stil, mehr nicht. dass solche funktionen am ende eines programmes stehen hat einen sinn.
Beispiel: irgendwann willst du eine schleife drum bauen, die es ermöglicht, dass der user immer wieder das programm durchlaufen kann, wenn du das hier tust, stört das wait() automatisch den programmfluss, da an der stelle nicht mehr das ende des programms ist-> du musst diesen programmteil umschreiben.
Die Stilentwicklung geht aber immer mehr zu wiederverwendbaren codefragmenten, das heisst immer weiter voranschreitender modularisierung. Mit deiner Einstellung landest du vom Stil her automatisch irgendwann in einer Sackgasse, denn es ist cool, wenn man eine funktion aus einem anderen projekt direkt wiederverwenden kann ohne etwas umschreiben zu müssen.
Auch kannst du einzelne Teile des programms leichter austauschen, eine andere eingabe oder ausgabe ist ganz schnell implementiert.
Ein Beispiel dafür: vielleicht wirst du irgendwann für eins deiner consolen programme ein gui interface schreiben, mit editfeldern buttons und labeln. Wenn du so programmierst wie wir es dir vorschlagen, wirst du nur einen kleinen codeteil ändern müssen, nämlich ganz am ende die Ausgabe. Im idealfall ersetzt du dann nur eine Funktion.
Wenn aber überall im Code so spezifische Sachen wie wait und cout drinstehen kannst du den Code nicht für die GUI verwenden sondern musst alles umschreiben.