Programm Beenden


Jonas Meyer

Mitglied
Hallo,
Ich bin heute Angefangen mit C++ und habe ein Problem bzw. suche etwas.

Code:
#include "stdafx.h"
#include <iostream>


double Rechnen(int wahl, double zahl1, double zahl2);

int main()
{
	int wahl;
	double ergebnis, zahl1, zahl2;

	std::cout << "Wählen sie eine Rechenmothode aus: \n" << std::endl
		      << "(1)Addieren\n" << "(2)Subdrahieren\n" << "(3)Multi\n" << "(4)Divi\n";
	std::cin >> wahl;
	std::cout << "\n\n";
	std::cout << "\n\n";



	std::cout << "\Gebe Zahl 1 ein: ";
	std::cin >> zahl1;
	std::cout << "\Gebe Zahl 2 ein: ";
	std::cin >> zahl2;
	std::cout << "\n\n";
	std::cout << "\n\n";

	ergebnis = Rechnen(wahl, zahl1, zahl2);

	std::cout << "Das Ergebnis ist: " << ergebnis << std::endl;

	std::cin.ignore();
	std::cin.get();
	return 0;
}

double Rechnen(int wahl, double zahl1, double zahl2)
{
	double ergebnis;

	if ( wahl == 1)
	{
		ergebnis = zahl1 + zahl2;
	}
	 else if ( wahl == 2)
	{
		ergebnis = zahl1 - zahl2;
	}


	 else if ( wahl == 3)
	{
		ergebnis = zahl1 * zahl2;
	}

	else if ( wahl == 4)
	{
		ergebnis = zahl1 / zahl2;
	}
	else
	{
		std::cout << "Falsche Eingabe!\n";
		
	}

	


	return ergebnis;


}



Möchte ich es so haben das ich eine Rechen Methode wähle die nicht 1-4 ist kommt falsche Eingabe und wenn ich enter drück schließst sich das Programm und fragt nicht noch nach Zahl1 und Zahl2.
Schreibt mir jemand den Code um****?
Oder sagt mir eine Möglichkeit****?

mfG Jonas
 

Steiner_B

Erfahrenes Mitglied
Schreibt mir jemand den Code um****?
Nein, das ist ein Hilfe-Forum und kein "Wer kann mir was programmieren" Forum.

Oder sagt mir eine Möglichkeit****
Das jederzeit:
Wie ich das verstanden hab möchtest du das dein Programm nicht nach Zahlen fragt wenn eine ungültige Rechenart gewählt wurde:
Dann musst du zwischen den Zeilen 14 und 15 überprüfen ob "wahl" zwischen 1 und 4 liegt, wenn nicht dann gleich beenden, sonst nach Zahlen fragen:
Code:
wenn (zahl < 1 || zahl > 4)
   //Fehlermeldung
sonst
{
  //Zeile 15-32
}
 
Zuletzt bearbeitet:

Steiner_B

Erfahrenes Mitglied
Hoppla, da war wohl die Hand schneller als der Kopf. Es muss natürlich zahl < 1 || zahl > 4 heißen. Ich habs oben ausgebessert.
 
Zuletzt bearbeitet:

Jonas Meyer

Mitglied
Ja in diesen Fall aber wenn ich mehrerer Zeilen hab und mehrere solcher Abbruch schleifen oder wie man so was nennen soll ist das ganz schnell unverständlich und unübersichtlich.
 
Zuletzt bearbeitet:

Steiner_B

Erfahrenes Mitglied
Naja, man kann stattdessen folgendes verwenden (statt dem von mir oben geposteten Code)

C++:
if (zahl < 1 || zahl > 4)
{
  //Fehlermeldung
  return 1;
}

Raten würde ich aber keinem dazu, da der Code für jemanden anderen dadurch schwer nachvollziehbar wird.
 
Zuletzt bearbeitet von einem Moderator:
Hoppla, da war wohl die Hand schneller als der Kopf. Es muss natürlich zahl <= 1 || zahl >= 4 heißen. Ich habs oben ausgebessert.
Immer noch nicht richtig. Es muss z.B.
C++:
if (zahl < 1 || zahl > 4) {
  // Fehlermeldung
}
heißen.

Naja, man kann stattdessen folgendes verwenden (statt dem von mir oben geposteten Code)

C++:
if (zahl <= 0 || zahl >= 1)
{
  //Fehlermeldung
  return 1;
}
Die Bedingung ist ebenso falsch, da sie immer erfüllt ist.

Raten würde ich aber keinem dazu, da der Code für jemanden anderen dadurch schwer nachvollziehbar wird.
Gegen ein return innerhalb einer Funktion ist grundsätzlich nichts einzuwenden. Das ist allemal übersichtlicher als viele ineinander geschachtelte if-else-Blöcke.

Grüße,
Matthias
 
Zuletzt bearbeitet von einem Moderator:

Steiner_B

Erfahrenes Mitglied
Oh mann, das kommt davon wenn man während des Programmierens Fragen beantwortet. Danke für die Hinweise, ich hoff ich habs jetzt überall ausgebessert.
 

Forum-Statistiken

Themen
272.354
Beiträge
1.558.605
Mitglieder
187.826
Neuestes Mitglied
drmidu