Anfänger: Wie wird das in C# programmiert? Need help :(

Mal wieder eine kurze Frage ...

Ich muss in einer Übung einen Wert einlesen, dieser darf nur 0 oder 1 sein.
Wenn der User etwas anderes eintippt (Buchstaben, Sonderzeichen oder andere andere Zahl) soll die Frage wiederholt werden. Wenn er den Wert das 3. Mal falsch eintippt, so soll der Wert auf 1 gesetzt werden.

Wie mache ich das am schlausten?
Das klingt irgendwie echt einfach, aber irgendwie steh ich aufm Schlau :(
 
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
Ich bin jetzt nicht der C# Guru, aber ich würde das in einer while Schleife machen.

Wert einlesen
i=1
Solange Wert nicht 0 oder 1(
Wert neu einlesen
Hochzählen und bei i=3 nen Break)

So würde ich das grob machen.

Sent from my HTC Desire using Tapatalk
 
Detailierter? ;)

So im Grund ist die Idee ja recht simple, bei mir hapert es nur arg an der Umsetzung...
 
War doch schon sehr detailliert :fresse:

du definierst einen int (z.B. i) der dir deine Eingabeversuche zählt.

danach startest du eine While schleife, die deine Eingabe einliest, checkt, ob es eine 1, 0 oder Etwas anderes ist.
- bei 1: Irgendwo den Wert speichern, dann break
- bei 0: Irgendwo den Wert speichern, dann break
- bei allem anderen (default): Wert als 1 speichern und i++

fertig.

ein Tipp, versuch dich ins Programm "rein zu denken", was soll es als nächstes machen, dann ist alles recht logisch (klappt bei mir zumindest).
 
Kann ich das auch mit switch machen?

---------- Beitrag hinzugefügt um 13:17 ---------- Vorheriger Beitrag war um 13:12 ----------

Glaube das Fieber tut mir nicht gut ... sieht jetzt so aus, funktioniert aber nicht:

Console.WriteLine("\nBitte AGB Wert eingeben (0 oder 1):");

int i = 0;
while (AGB == 1)
{
AGB = Convert.ToInt32(Console.ReadLine());
break;
}
while (AGB == 0)
{
AGB = Convert.ToInt32(Console.ReadLine());
break;
}
default ()
{
AGB = 1;
i++;
}
Was muss ich ändern? Müsste ich nicht irgendwie eine if Schleife machen, die dann bis i = 3 hochzählt oder so etwas?
 
Zuletzt bearbeitet:
du hättest alles in eine while packen müssen, die die 3 Abfragen prüft.

AGB = Convert.ToInt32(Console.ReadLine()); //Das kannst du vergessen, außer du machst noch eine try-Catch dazu, weil Buchstaben kann er nicht als int umwandeln, vergleich einfach mit einem String ("1" bzw. "0").

Hab da mal schnell was gebastelt.
Console.WriteLine("\nBitte AGB Wert eingeben (0 oder 1):");

int out = 0;
int i = 0;
while (i<3)
{
AGB = Console.ReadLine();
switch AGB;
case "1":
out = 1;
break;
case "0":
out = 0;
break;
default:
i = 1;
Console.WriteLine("Falsche Eingabe!");
i++;
}
sollte so funktionieren, habs aber nicht getestet und bin mir bei der switch-case Syntax grad nicht sicher
 
Musste es etwas ändern, da viele Fehler drin waren.
Sieht jetzt so aus ... allerdings meckert er mit AGB rum.
Er sagt mir, dass strings nicht in int formatiert werden können.
Ich brauche das aber eigentlich als int, da es eine 0 oder 1 sein soll. Zudem soll er mir ja auch einen Fehler bringen (bool?) wenn Buchstaben oder Zeichen eingegeben werden.

Console.WriteLine("\nBitte AGB Wert eingeben (0 oder 1):");
int y = 0;

while (y<3)
{
//AGB = Console.ReadLine();
switch (y)
{
case 1:
AGB = 1;
break;

case 0:
AGB = 0;
break;

default:
y = 1;
Console.WriteLine("Falsche Eingabe!");
y++;
}
AGB = 1;
}


Edit:

Jetzt gibt er nur noch einen Fehler wegen dem "default", aber was soll denn da bitte falsch sein? Verstehe ich nciht.
 
Zuletzt bearbeitet:
das muss raus, y = 1;

Du setzt jedes mal, wenn du in default rein gehts y auf 1, machst später y++ damit wird y nie größer als 2 und deine schleife bricht nicht mehr ab.

Edit: und dein AGB = 1; ganz unten muss noch vor die klammer

müsste am ende so aus sehen:
AGB = 1;
}
}

!!Fehler, du switchst dein y, du musst deine Eingabe switchen!!
 
Zuletzt bearbeitet:
Noch ein Fehler: im Switch muss bei case "0" und case "1" dann die While-Schleifenvariable (y) auf 3 gesetzt werden.
Sonst gibt es bei korrekter Eingabe trotzdem 3 Durchläufe.

Oder einfach per If, dann kann man bequem mit break; die Schleife verlassen, was bei Switch nicht möglich ist, denn dort wird das break; auf das switch angewendet, nicht aber auf die while-Schleife.
Code:
            int i = 1;
            string eingabe;
            int ausgabe = -1;

            while (i <= 3)
            {
                eingabe = Console.ReadLine();
                if (eingabe == "1")
                {
                    ausgabe = 1;
                    break;
                }
                else if (eingabe == "0")
                {
                    ausgabe = 0;
                    break;
                }
                else if (i >= 3)
                {
                    ausgabe = 1;
                    break;
                }
                else
                {
                    Console.WriteLine("Möp falsche einagabe. Bitte wiederholen");
                    i++;
                }
            }
            Console.WriteLine(ausgabe.ToString());
 
Zuletzt bearbeitet:
Ok, habe das y=1; rausgenommen, trotzdem meldet er einen Fehler in der Zeile vom default.

Fehlermeldung:
Das Steuerelement kann nicht von einer case-Bezeichnung ("default:") zur nächsten fortfahren.


Edit:

Dank dir pointX. Mit deinem Text funktioniert es. Nun noch etwas die Bezeichnungen ändern und dann ist fein. Super.
 
Zuletzt bearbeitet:
Fehlermeldung:
Das Steuerelement kann nicht von einer case-Bezeichnung ("default:") zur nächsten fortfahren.

Fehler kommt daher, weil dein default nicht per break; beendet wurde innerhalb der Switch-Bereichs.

Aber gut, wenn es per If jetzt klappt.
Viele Wege führen nach Rom ;)
 
Und wieder ein neues Problem ... Im ersten Moment klingt das immer so simple, aber dann scheitert es doch irgendwie :(

Der User muss einen Wert [Variable Cf] von 10 bis 1000 eingeben. Bei Falscheingabe (Wert zu hoch, zu niedrig oder ein Buchstabe/Sonderzeichen) muss die Abfrage wiederholt werden. Bei der 3. Fehleingabe wird der Wert auf 1 gesetzt.

Mein Ansatz sieht so aus:

int h = 1;

double Cf;

Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):");
Cf = Convert.ToDouble(Console.ReadLine());

while (h <= 3)
{

if ((Cf <= 1000) && (Cf > 0))
{
Cf = Convert.ToDouble(Console.ReadLine());
break;
}
else if (Cf > 1000)
{
Console.WriteLine("Falsche Eingabe, Wert zu hoch. Bitte wiederholen");
break;
h++;
}
else if (Cf < 10)
{
Console.WriteLine("Falsche Eingabe, Wert zu niedrig. Bitte wiederholen");
break;
h++;
}
else if (h >= 3)
{
Cf = 1;
break;
}

}
Console.WriteLine("\nCf Wert: " + Cf);

Problem ist, dass er zb erkennt, wenn ich eine Zahl über 1000 eingebe, schreibt mir auch, dass die Zahl falsch ist, nimmt den Wert aber trotzdem an.
Ebanso wenn die Zahl etwa zu klein ist.
Und er fragt auch immer 2x ab :(
 
Zuletzt bearbeitet:
Erst einmal etwas generelles:

So etwas wie
Code:
Convert.ToDouble(string a);
niemals ohne Try-Catch.
Wenn dir Try-Catch nichts sagt empfehle ich dir dringend das mal anzuschauen.
Sonst stürtzt dein Programm sauber ab, wenn du z.B. Buchstaben eingibst.

Zu deinem Problem:
Schau dir doch deine Struktur mal an, was du im fehlerfall machst.
Hier dein Ablauf:
Cf parsen - prüfen - Meldung ausgeben - break; h++ (?? -> siehe weiter unten).

Cf hat aber immer noch den geparsten Wert.
Du vergisst hier Cf = 1 zu setzen, wie es gewünscht ist.

Was anderes:
Code:
break;
h++;

Was soll das bringen ?
Du weißt, dass break; bedeutet, dass die while-Schleife nicht mehr ausgeführt wird, sondern abgebrochen wird ?
D.h. dein h++ wird schon nicht mehr ausgeführt ! Die Schleife wird abgebrochen.
Deshalb vllt. wird es auch nur 2x ausgeführt.... wenn bei der 2. Eingabe etwas falsches eingegeben wird ;)
Du hattest vllt das hier vor:
Code:
h++;
continue; // nächster Durchlauf.....


Ein bisschen verändert, funktioniert:
Code:
int h = 0;

            double Cf = -1;
            string eingabe;

            while (h <= 3)
            {
                if (h == 3)
                {
                    Cf = 1; // nach 3. erfolgloser eingabe auf 1 als default wert setzen
                    break;
                }
                else
                {
                    Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):");
                    eingabe = Console.ReadLine();

                    try
                    {
                        Cf = double.Parse(eingabe);
                    }
                    catch
                    {
                        Console.WriteLine("ungültige Einagabe ! Das war keine Zahl.");
                    }

                    if ((Cf <= 1000) && (Cf > [COLOR="Red"][B]0[/B][/COLOR]))  // 10 oder 0 ? was willst du ? entweder hier 10 oder unten auch 0
                    {
                        break; // ok , while verlassen da Wert korrekt
                    }
                    else if (Cf > 1000)
                    {
                        Console.WriteLine("Falsche Eingabe, Wert zu hoch. Bitte wiederholen");
                    }
                    else if (Cf < [COLOR="Red"]10[/COLOR]) // 10 oder 0 ? was willst du ? entweder hier 0 oder oben auch 10
                    {
                        Console.WriteLine("Falsche Eingabe, Wert zu niedrig. Bitte wiederholen");
                    }
                    h++;
                }
            }
            Console.WriteLine("\nCf Wert: " + Cf.ToString());
 
Zuletzt bearbeitet:
Hmm ... ich merke schon, ich muss noch eine Menge lernen.

Was genau bedeutet:
Cf = double.Parse(eingabe);
?
Dieses double.Parse kenne ich garnicht.

Der Rest leuchtet eigentlich ein ...


Dir nochmal ein großes Danke :hail:
 
Mit was Programmierst du ?
In Visual C# 2010 werden doch die Erklärungen immer mit angezeigt.
attachment.php


Konvertiert einfach die übergebene Variable zu double.
Bei Fehler treten die entsprechenden Exceptions auf, welche per try-catch abgefangen und entsprechend behandelt werden können.
 

Anhänge

  • a.jpg
    a.jpg
    27,9 KB · Aufrufe: 150
Ich nutze Sharpdevelop.
 
Eine letzte Frage :p
(Für diese Woche :rolleyes:)

Ich muss 2 Formeln ausrechnen und zuvor halt die ganzen Werte einlesen.
Mit den Werte einlesen und Fehler abfangen und allem drum und dran funktioniert soweit, aber wie mache ich das, dass wenn er die erste Formel ausspuckt, quasi von vorne anfängt die Werte einzulesen und dann am Ende die 2. Formel zur Berechnung nimmt?

Simpel gesprochen um es zu veranschaulichen:

Werte Formel1 einlesen:
a = ... // ist ein Array
b = ...
c = ...

Formel1:
z = a + b + c

Werte Formel2 einlesen:
a = ... // ist ein Array
b = ...
c = ...

Formel2:
z = a * b * c


Wie verwirkliche ich das mit einer Schleife?
(Die Variablen [hier im Beispiel a, b und c] sollen überschrieben werden)
 
Zuletzt bearbeitet:
Hmm, irgendwie sieht das so aus, als sollten die anderen deine Hausaufgaben erledigen...

Es gibt viele Möglichkeiten: lager die Ein- und Ausgabe in Prozeduren oder Funktionen aus.

Dann sieht deine Main Funktion ungefähr so aus:
Aufruf der Eingabeprozedur
Berechnung Formel 1
Aufruf der Ausgabeprozedur
Aufruf der Eingabeprozedur
Berechnung Formel 2
Aufruf der Ausgabeprozedur
Ende

Man kann es auch anders machen bei solchen simplen Programmen. Schreib doch erstmal das Programm und poste dann nochmal dein konkretes Problem.

Im Grunde ist es ja immer das gleiche, was hier gefragt wird.

Wenn du es in einer Schleife lösen willst (Pseudocode):
Int i=1;
While(i<=3){
Eingabeprozedur();
If(i%2==1){Formel1();}
Else{Formel2();}
Ausgabeprozedur();
i++;
}

Das müsste eigentlich einleuchtend sein.

PS: Ich habe Programmieren immer gehasst, bis es mal klick gemacht hat. Jetzt finde ich es toll, das kommt bei dir auch noch. Ich werde jetzt schlafen und mich morgen wieder der AVR Programmierung widmen. ;)

Sent from my HTC Desire using Tapatalk
 
Das ganze Programm? Ui ... das wird aber viel ;)


Was mir halt noch fehlt, dass ich 1x mit den ganzen Eingabe die Lösung 1 rauskriege und das ganze Teil dann von vorne durchläuft mit den Werteeingeben und mir dann die Lösung 2 ausgespuckt wird.
(Jaja, sinnlos ... weil es 2x die selbe Endformel ist)

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ü2_29._11_teil2
{
class Program
{
public static void Main(string[] args)
{

#region Variablen

double[] IF = new double[16]; // Array Impact Factoren
// x = Zähler

double L; // Lösung
double L1; // Lösung Nr. 2

string eingabe_AGB; // AGB zwischen 0 und 1
double AGB = -1;
// i = Zähler

string eingabe_DOM; // DOM zwischen 0 und 1
double DOM = -1;
// j = Zähler

string eingabe_Cf; // Cf zwischen 10 und 1000
double Cf = -1;
// h = Zähler

string eingabe_Gef; // Gef 1 oder höher
double Gef = -1;
// k = Zähler

#endregion

#region IF
for (int x = 1; x < 10; x++)
{
Console.WriteLine("\nBitte Impact Factor Nr. " + x + " eingeben:");

try
{
IF[x] = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("\aEingabe fehlerhaft, bitte wiederholen.\nBuchstaben und Sonderzeichen sind nicht gültig.");
x--;
continue;
}

}
Console.WriteLine("\nSumme der Impact Factoren: " + IF.Sum());
#endregion

#region AGB


int i = 1;
//string eingabe_AGB;
//double AGB = -1;

while (i <= 3)
{
if (i == 3)
{
AGB = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte AGB Wert eingeben (zwischen 0 und 1):");
eingabe_AGB = Console.ReadLine();

try
{
AGB = double.Parse(eingabe_AGB);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if ((AGB >= 0) && (AGB <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (AGB > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (AGB < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
i++;
}
}
Console.WriteLine("\nAGB Wert: " + AGB.ToString());
#endregion

#region DOM

int j = 1;
//string eingabe_DOM;
//double DOM = -1;

while (j <= 3)
{
if (j == 3)
{
DOM = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte DOM Wert eingeben (zwischen 0 und 1):");
eingabe_DOM = Console.ReadLine();

try
{
DOM = double.Parse(eingabe_DOM);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if ((DOM >= 0) && (DOM <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (DOM > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (DOM < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
j++;
}
}
Console.WriteLine("\nDOM Wert: " + DOM.ToString());
#endregion

#region Cf

int h = 0;
// double Cf = -1;
// string eingabe_Cf;

while (h <= 3)
{
if (h == 3)
{
Cf = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):");
eingabe_Cf = Console.ReadLine();

try
{
Cf = double.Parse(eingabe_Cf);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if ((Cf <= 1000) && (Cf > 10)) // Wert zwischen 10 und 1000
{
break; // While verlassen -> Wert korrekt
}
else if (Cf > 1000) // Ausführen wenn Cf > 1000
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (Cf < 10) // Ausführen wenn Cf < 10
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
h++;
}
}
Console.WriteLine("\nCf Wert: " + Cf.ToString());

#endregion

#region Gef

int k = 0;
// double Gef = -1;
// string eingabe_Gef;

while (k <= 3)
{
if (k == 3)
{
Gef = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Gef Wert eingeben (1 oder höher):");
eingabe_Gef = Console.ReadLine();

try
{
Gef = double.Parse(eingabe_Gef);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if (Gef >= 1) // Wert mind. 1
{
break; // While verlassen -> Wert korrekt
}

else if (Gef < 1) // Ausführen wenn Cef < 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
k++;

}
}
Console.WriteLine("\nGef Wert: " + Gef.ToString());

#endregion


#region Rechnung

L = IF.Sum()*(((AGB + DOM)*Cf)*(Gef*0.001));
Console.WriteLine("\nLösung laut Formel: " + L);

#endregion

Console.WriteLine("\nTaste drücken zum beenden.");
Console.ReadKey(true);

}
}
}

Die Werte IF (Array with 9 Werten), AGB, DOM, Cf und Gef werden eingelesen und sollen dann zur Lösung1 werden. Dann soll der User die Werte nochmal eingeben können, welche dann am Ende die Lösung2 ergeben.

---------- Beitrag hinzugefügt um 23:48 ---------- Vorheriger Beitrag war um 22:56 ----------

Jear ... ich habe es gelöst. Sicher nicht die beste Lösung, aber es funktioniert.

Hier der Quellcode:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ü2_29._11_teil2
{
class Program
{
public static void Main(string[] args)
{

#region Variablen

double[] IF = new double[16]; // Array Impact Factoren
// x = Zähler

double L; // Lösung CH4
double L1; // Lösung N2O

string eingabe_AGB; // AGB zwischen 0 und 1
double AGB = -1;
// i = Zähler

string eingabe_DOM; // DOM zwischen 0 und 1
double DOM = -1;
// j = Zähler

string eingabe_Cf; // Cf zwischen 10 und 1000
double Cf = -1;
// h = Zähler

string eingabe_Gef; // Gef 1 oder höher
double Gef = -1;
// k = Zähler

#endregion

int a = 1;
int b = 1;
while (a == 1)

{
if (b >=0)
{
#region IF
for (int x = 1; x < 10; x++)
{
Console.WriteLine("\nBitte Impact Factor Nr. " + x + " eingeben:");

try
{
IF[x] = Convert.ToDouble(Console.ReadLine());
}
catch
{
Console.WriteLine("\aEingabe fehlerhaft, bitte wiederholen.\nBuchstaben und Sonderzeichen sind nicht gültig.");
x--;
continue;
}

}
Console.WriteLine("\nSumme der Impact Factoren: " + IF.Sum());
#endregion

#region AGB


int i = 1;
//string eingabe_AGB;
//double AGB = -1;

while (i <= 3)
{
if (i == 3)
{
AGB = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte AGB Wert eingeben (zwischen 0 und 1):");
eingabe_AGB = Console.ReadLine();

try
{
AGB = double.Parse(eingabe_AGB);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if ((AGB >= 0) && (AGB <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (AGB > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (AGB < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
i++;
}
}
Console.WriteLine("\nAGB Wert: " + AGB.ToString());
#endregion

#region DOM

int j = 1;
//string eingabe_DOM;
//double DOM = -1;

while (j <= 3)
{
if (j == 3)
{
DOM = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte DOM Wert eingeben (zwischen 0 und 1):");
eingabe_DOM = Console.ReadLine();

try
{
DOM = double.Parse(eingabe_DOM);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if ((DOM >= 0) && (DOM <= 1)) // Wert zwischen 0 und 1
{
break; // While verlassen -> Wert korrekt
}
else if (DOM > 1) // Ausführen wenn DOM > 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (DOM < 0) // Ausführen wenn DOM < 0
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
j++;
}
}
Console.WriteLine("\nDOM Wert: " + DOM.ToString());
#endregion

#region Cf

int h = 0;
// double Cf = -1;
// string eingabe_Cf;

while (h <= 3)
{
if (h == 3)
{
Cf = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Cf Wert eingeben (10 bis 1000):");
eingabe_Cf = Console.ReadLine();

try
{
Cf = double.Parse(eingabe_Cf);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if ((Cf <= 1000) && (Cf > 10)) // Wert zwischen 10 und 1000
{
break; // While verlassen -> Wert korrekt
}
else if (Cf > 1000) // Ausführen wenn Cf > 1000
{
Console.WriteLine("\aFalsche Eingabe, Wert zu hoch. Bitte wiederholen");
}
else if (Cf < 10) // Ausführen wenn Cf < 10
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
h++;
}
}
Console.WriteLine("\nCf Wert: " + Cf.ToString());

#endregion

#region Gef

int k = 0;
// double Gef = -1;
// string eingabe_Gef;

while (k <= 3)
{
if (k == 3)
{
Gef = 1; // Nach 3 erfolglosen Eingabe, Wert auf 1
break;
}
else
{
Console.WriteLine("\nBitte Gef Wert eingeben (1 oder höher):");
eingabe_Gef = Console.ReadLine();

try
{
Gef = double.Parse(eingabe_Gef);
}
catch
{
Console.WriteLine("\aUngültige Eingabe! Das war keine Zahl.");
}

if (Gef >= 1) // Wert mind. 1
{
break; // While verlassen -> Wert korrekt
}

else if (Gef < 1) // Ausführen wenn Cef < 1
{
Console.WriteLine("\aFalsche Eingabe, Wert zu niedrig. Bitte wiederholen");
}
k++;

}
}
Console.WriteLine("\nGef Wert: " + Gef.ToString());

#endregion


#region Rechnung
if (b == 1)
{
L = IF.Sum()*(((AGB + DOM)*Cf)*(Gef*0.001));
Console.WriteLine("\nLösung laut Formel (CH4): " + L);
b++;
continue;
}

else if (b == 2)
{
L1 = IF.Sum()*(((AGB + DOM)*Cf)*(Gef*0.001));
Console.WriteLine("\nLösung laut Formel (N2O): " + L1);
Console.WriteLine("\nTaste drücken zum beenden.");
Console.ReadKey(true);
break;
}

#endregion
}
}


}
}
}
 
Zuletzt bearbeitet:
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh