Ich versuche gerade eine Aufgabe in Sololearn zu meistern, scheitere aber jämmerlich ???
Create a program for auction with a maximum bid set.
Mein Code:
static void Main(string[] args)
{
int maxBid = Convert.ToInt32(Console.ReadLine());
while(true)
{
string ins = Console.ReadLine();
int Bid = Convert.ToInt32(ins);
if (Bid > maxBid);
{
Console.WriteLine("Sold:" + Bid);
break;
}
}
}
Der erste eingegebene Wert soll den maximalen Wert bestimmen. Alle folgenden Eingaben jeweils Gebote. Wenn ein Gebot den max. Wert überschreitet soll verkauft für: ausgegeben werden.
Danke im vorraus für eure Hilfe!
Neuling in C#
Hi,
grundlegend hilft es (wenn du Hilfe haben möchtest), wenn du beschreibst welches Problem du überhaupt hast.
Direkt offensichtlich:
Da ist ein Semikolon, welches dort nicht hingehört bei: "if (Bid > maxBid);"
(Das hindert das Programm allerdings nicht - es ist nur unnötig)
Bei Ausführung des Codes lässt sich meinerseits feststellen, dass dieser sich verhält wie zu erwarten - nämlich:
Solange die Eingabe < erste Eingabe ist hängt man in der while-Schleife. Gibt man was größeres ein - ist das Programm zu Ende. (Es schreibt sogar "Sold:<Number>" - das Programm ist dann nur so schnell zu, dass du es nicht mehr siehst...)
Sofern das dein Problem ist bin ich sicher, dass du eine Methode aus dem System.Console-Bereich findest, die es dem Nutzer ermöglicht zu sehen was passiert.
LG
Das Semikolon sorgt dafür, dass folgendes ausgeführt wird, wenn "True": Nichts.
Und darauf folgt, dass jede (numerische) Eingabe die Schleife beendet.
Das Semikolon sorgt dafür, dass folgendes ausgeführt wird, wenn "True": Nichts.
Und darauf folgt, dass jede (numerische) Eingabe die Schleife beendet.
Urgh - hast Recht - hatte das Semikolon bei meinem ersten Test direkt gestrichen, weil's nicht hingehört und beim zweiten Test direkt eine höhere Zahl eingegeben. (Hab so nen Fehler noch nie gesehen)
Wenn ein Programm nicht tut, was es eigentlich tun sollte, kann man immer den Debugger verwenden, um den Programmablauf nachzuvollziehen: [Artikel] Debugger: Wie verwende ich den von Visual Studio?
Weeks of programming can save you hours of planning
Der Hinweis von wg. Debugger gilt für VS, vielleicht nicht für Sololearn
Aber zwecks eines Erfolgserlebnisses (vorige Hinweise wurden eingearbeitet):
static void Main(string[] args)
{
Console.WriteLine("Bitte Wunschpreis eingeben :");
int maxBid = Convert.ToInt32(Console.ReadLine());
//gilt nur für (negative) Ganzzahlen, ebenso die Gebote
while (true)
{
Console.WriteLine("Bitte ihr Gebot eingeben: ");
string ins = Console.ReadLine();
int Bid = Convert.ToInt32(ins);
if (Bid > maxBid)
{
Console.WriteLine("Sold: " + Bid);
Console.WriteLine("Enter drücken zum Beenden");
Console.ReadLine();
break;
}
}
Goalkicker.com // DNC Magazine for .NET Developers // .NET Blogs zum Folgen
Software is like cathedrals: first we build them, then we pray 😉
Debuggen in SoloLearn ist tatsächlich eher rudimentär. Es sagt mir nur, wenn und wo offensichtliche Fehler im Code sind.
Aber die richtige Ausführung - wie es mein Lernprogramm erwartete - lag tatsächlich nur am Semikolon hinter der if-Anweisung. Und natürlich das fehlende Leerzeichen in der Ausgabe.
static void Main(string[] args)
{
int maxBid = Convert.ToInt32(Console.ReadLine());
//your code goes here
while(true)
{
string insert = Console.ReadLine();
int Bid = Convert.ToInt32(insert);
if (Bid > maxBid)
{
Console.WriteLine("Sold: " + Bid);
break;
}
}
}
Danke für die Hilfe. Es ist am Anfang immer etwas schwierig, sich in eine neue Materie einzudenken. Aber wenn Dinge dann funktionieren wie gedacht, ist es ein riesen Spass 😃
Neuling in C#
Als kleiner Tipp.
Für diesen Fall nimmt man eigentlich eine do...while Schleife.
Dadurch muss der Durchlauf erst einmal gemacht werden, also die Eingabe erfolgen.
Wenn dann bei der ersten Eingabe der Wert Max entspricht, erledigt sich die Schleife selbst.
Ansonsten würde er den nächsten und übernächsten Ansatz nehmen.
Dadurch hast du dann auch gleich anstelle einer while(true) eine saubere do...while Schleife.
T-Virus
Developer, Developer, Developer, Developer....
99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.