Zum Inhalt springen

Anfänger: Frage zu Schleifen


Flair

Empfohlene Beiträge

Also ich bin relativ neu in der Materie, um genau zu sein habe ich erst gestern angefangen mich mit C++ zu beschäftigen. Ich dachte mir, da ich gerne im Sommer ein Studium in Richtung Wirtschaftsinformatik/Informatik beginnen möchte, es wäre garnicht so dumm schon einige baiscs zu erlernen.

Was ich gestern nach dem "Hallo Welt" Programm hinbekommen ist folgendes:


#include "stdafx.h"

#include <iostream>

#include <string>

#include <Windows.h>

using namespace std ;


int _tmain(int argc, _TCHAR* argv[])

{

	cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n";  // Start Aussehen + Text des Menues

	cout << "::::::::::::::::::::::           ::::::::::::::::::::::\n";

	cout << "::::::::::::::::::::::   Menue   ::::::::::::::::::::::\n";

	cout << "::::::::::::::::::::::           ::::::::::::::::::::::\n";

	cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n";

	cout << "::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@::\n";

	cout << "::@                                                 @::\n";

	cout <<	"::@  Waehlen Sie eine der folgendenen Optionen:     @::\n";

	cout << "::@  Option [1] um Fahrenheit in Grad umzurechnen   @::\n";

	cout << "::@  Option [2] um Grad in Fahrenheit umzurechnen   @::\n";

	cout << "::@  Option [3] um das Programm zu beenden          @::\n";

	cout << "::@                                                 @::\n";

	cout << "::@  Auswahl erfolgt durch die Zahl in [Klammern]   @::\n";

	cout << "::@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@::\n";

	cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n";

	cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n";

	cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n";

	cout << ":::::::::::::::::::::::::::::::::::::::::::::::::::::::\n";  // Ende Aussehen + Text des Menues

	cout << endl;

	cout << endl;


	cout << "Geben Sie Ihre Option ein:\n";

	int option ;

	cin >> option ;

	getchar();

	switch(option)

	{

	case 1:


		double fahrenheit;

		double celsius;


	cout << "Geben Sie die Temperatur in Fahrenheit ein um sie in Celsius umzurechnen!" << endl;	// Text Eingabe Aufforderung

	cin >> fahrenheit ;																				// Eingabe

	celsius = (fahrenheit - 32 ) * 5.0/9.0 ;														// Formel zur Berechnung Celsius

	getchar();																						

	cout << "Die Temperatur betraegt umgerechnet " << celsius << " Grad Celsius!\nDas Programm wird mit der naechsten Return Eingabe in 5 Sekunden beendet!"  << endl;			// Ausgabe Ergebnis

	getchar();

	break;


	case 2:


		double fahrenheit2;

		double celsius2;


	cout << "Geben Sie die Temperatur in Celsius ein um sie in Fahrenheit umzurechnen!" << endl;	// Text Eingabe Aufforderung

	cin >> celsius2 ;																				// Eingabe

	fahrenheit2 = ((celsius2 * 9.0 ) / 5.0) + 32 ;													// Formel zur Berechnung Fahrenheit

	getchar();																						

	cout << "Die Temperatur betraegt umgerechnet " << fahrenheit2 << " Grad Fahrenheit!\nDas Programm wird mit der naechsten Return Eingabe in 5 Sekunden beendet!"  << endl;			// Ausgabe Ergebnis

	getchar();

	break;


	case 3:

		cout << "Das Programm wird in 5 Sekunden beendet!";

		break;

	}

	cout << ".";

	Sleep(1000);

	cout << ".";

	Sleep(1000);

	cout << ".";

	Sleep(1000);

	cout << ".";

	Sleep(1000);

	cout << ".";

	Sleep(1000);

	return 0;

}


Jetzt möchte ich das ganze so umschreiben, dass das Programm nur bei Option 3 beendet wird und der Rest (ab der Auswahl der Option) in einer Schleife hängt.

Meine Idee wäre jetzt eine Schleife einzubauen mit while > 3 und if = 3. Ist der Ansatz so richtig?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke ersteinmal!

Also ich hab das ganze jetzt so gemacht:

	int option ;

	cin >> option;

	while(option < 3)

	{

	cin >> option;

	switch(option)

		{ ....


Das Problem ist/war nun folgendes:

- Ich musst immer zweimal etwas eingeben bevor die Wahl ging

(gelöst indem ich jeweils das __getchar();__ am Ende eines case gelöscht habe. Ich hoffe das war richtig so.)

- Ich muss allerdings beim ERSTEN Aufrufen immernoch 2 mal die Option angeben. Ich denke das liegt daran das ich einmal die Eingabe vor der Schleife und einmal in der Schleife habe. Allerdings verstehe ich nicht wie ich das Problem lösen soll. Falls ich die Eingabe vor der Schleife rausnehme ist diese nicht definiert = Fehler, nehme ich die nach der Schleife raus wähle ich nicht neu, da "option" ja schon definiert ist und nicht mehr geändert wird (also wäre ich immer in der selben, am Anfang gewählten Option).

Link zu diesem Kommentar
Auf anderen Seiten teilen

while(option < 3)

Die Frage ist, ob das so gewünscht ist ... Was ist mit dem Fall "option=4"?

Im Übrigen fände ich es schöner, wenn man statt mit den Integerzahlen mit enums arbeitet. Die sind sprechender:

Other Data Types

Dann würde sich ein Vergleich wie folgt lesen:

while(selectedOption != Option_Exit)

und jeder weiß, was gemeint ist.

Bearbeitet von lilith2k3
Link zu diesem Kommentar
Auf anderen Seiten teilen

Noch ein danke, das war eigentlich so einfach das ich mich jetzt schon ein wenig schäme :rolleyes:

Die Frage ist, ob das so gewünscht ist ... Was ist mit dem Fall "option=4"?

Ja es ist so wie es jetzt ist sicherlich nicht gut, allerdings will ich ja nur üben und hab grob etwas im Kopf wie das ganze am Ende aussehen soll.

Ich will das ganze so Aufbauen das ich ein Hauptmenü habe in der man die Auswahl hat zwischen einem einfachen Umrechner (im Grunde das was man jetzt sieht) und einem Rechner der Funktionen ableitet, das Gauss-Verfahren durchführt usw mit jeweils wieder einem eigenem Menü und da würde ich es angenehm finden, wenn er bei jeder Eingabe die größer ist als das "zurück ins Hauptmenü" ebenfalls zum Hauptmenü zurück führt.

Je nachdem wie meine skills steigen, umso umfangreicher und mehr Untermenüs.

Im Übrigen fände ich es schöner, wenn man statt mit den Integerzahlen mit enums arbeitet. Die sind sprechender:

Other Data Types

Ich werde mir das mal anschauen und wenn ich es verstehe, versuchen umzusetzen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...