#1 7. Dezember 2012 Methode abbrechen? Hi, ich bin grad dabei zu versuchen mir einen Taschenrechner zu programmieren. Nun lasse ich die Zahlen mit einer Methode einlesen, wird nun ein Buchstabe eingetippt, wird eine Messagebox angezeigt die man mit OK bestätigen kann. Mein Problem bzw. die Frage liegt nun darin, das wenn ich 2 Buchstaben eingebe, die Messagebox kommt, ich sag OK und dann läuft der restliche Code vom Button_click weiter und ich bekomme als Ergebnis 0. Ich möchte nun das wenn 2 Buchstaben eingeben werden und ich die Messagebox mit OK bestätige, das die Methode dann angehalten oder abgebrochen wird sodass mir kein Ergbniss angezeigt wird. Gibt es also eine Möglichkeit die Methode abzubrechen sodass ich wieder an den Anfang meines Codes komme? Wäre dankbar für eure Hilfe olup89 p.s. bin absoluter programmieranfänger und hab den Code bis jetzt auch nur mit Hilfe von nem Buch usw. zusammenbekommen xD Code: namespace WindowsFormsApplication2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); } int[] Zahlen = new int[2]; int zahl1; int zahl2; int erg1; private void button1_Click(object sender, EventArgs e) { Eingabe(); zahl1 = Zahlen[0]; zahl2 = Zahlen[1]; Addieren(zahl1, zahl2); label2.Text = Convert.ToString(erg1); } private void button2_Click(object sender, EventArgs e) { Eingabe(); zahl1 = Zahlen[0]; zahl2 = Zahlen[1]; Subtrahieren(zahl1, zahl2); label2.Text = Convert.ToString(erg1); } private int[] Eingabe() { try { Zahlen[0] = Convert.ToInt32(textBox1.Text); Zahlen[1] = Convert.ToInt32(textBox2.Text); } catch (FormatException) { if (MessageBox.Show("Bitte geben Sie nur Zahlen ein", "Zahl eingeben", MessageBoxButtons.OK,MessageBoxIcon.Exclamation) == DialogResult.OK) { textBox1.Clear(); textBox2.Clear(); Array.Clear(Zahlen, 0, 2); [CENTER][COLOR="Red"]Hier würd ich die Methode gerne abbrechen[/COLOR] [/CENTER] } } return Zahlen; } private double Addieren(int text1, int text2) { double erg; erg = text1 + text2; erg1 = Convert.ToInt32(erg); return erg1; } private double Subtrahieren(int text1, int text2) { double erg; erg = text1 - text2; erg1 = Convert.ToInt32(erg); return erg1; } + Multi-Zitat Zitieren
#2 7. Dezember 2012 AW: Methode abbrechen? Dein Code macht so relativ wenig Sinn. Du deklarierst drei globale variablen (int[] Zahlen, int zahl1, int zahl2). Das ist schonmal redundant, denn dein Array "int[] Zahlen" beinhaltet die Zahl 1 und 2. Deine Methode "private int[] Eingabe()" gibt selber ein Array zurück welches du aber nie verwendest. Wenn du prüfen möchtest, ob die Eingabe erfolgreich war, sollte die Methode "Eingabe" einen boolischen Wert zurück geben (wenn du den Rest über globale Variablen regeln möchtest). Also z.B. (ungetestet): Code: private bool Eingabe() { try { Zahlen[0] = Convert.ToInt32(textBox1.Text); Zahlen[1] = Convert.ToInt32(textBox2.Text); } catch (FormatException) { if (MessageBox.Show("Bitte geben Sie nur Zahlen ein", "Zahl eingeben", MessageBoxButtons.OK,MessageBoxIcon.Exclamation) == DialogResult.OK) { textBox1.Clear(); textBox2.Clear(); Array.Clear(Zahlen, 0, 2); return false; } } return true; } Das prüfst du dann in deiner Rechnung also z.B. Code: private void button2_Click(object sender, EventArgs e) { if Eingabe() //nur wenn die Eingabe erfolgreich war wird gerechnet { zahl1 = Zahlen[0]; zahl2 = Zahlen[1]; Subtrahieren(zahl1, zahl2); label2.Text = Convert.ToString(erg1); } } Allgemein würde ich dir zu einem anderen Buch raten (wenn der Code da so drin war), denn das ist alles andere als ordentlicher Code. Ich habe auch "schlampig" angefangen und glaub mir, es ist schwer sich anzugewöhnen ordentlich zu programmieren. Schau dir doch mal das openbook zu c# an: Galileo Computing :: Visual C# 2010 1 Person gefällt das. + Multi-Zitat Zitieren
#3 8. Dezember 2012 Zuletzt bearbeitet: 8. Dezember 2012 AW: Methode abbrechen? Den Code hab ich selber zusammengewürfelt xD Aus dem buch hab ich nur die Befehle, genauso habe ich noch etwas Code von etwa dem gleichen Rechner von unserem Programmier Lehrer. Soweit funktioniert der Rechner eigentlich, also er kann rechnen^^ mich stört halt nur das wenn ich Buchstaben eingebe, das ich dann als Ergebnis 0 bekomme. Edit: Ok funktioniert so wie ich es wollte vielen Dank für die Tipps ^^ + Multi-Zitat Zitieren