Laden...
Avatar #M02xSa3yeKL7PWRDsX8p.jpg
Elmini08 myCSharp.de - Member
Auszubildender Fachinformatiker für Systemintegration Deutschland Dabei seit 15.05.2024 6 Beiträge

Forenbeiträge von Elmini08 Ingesamt 6 Beiträge

17.05.2024 - 13:30 Uhr

Danke für die Hilfe schonmal.

Des mit der ungarischen Notation hat uns unser Lehrer in der Berufsschule beigebracht. Kannte es nicht anders.

Habe Tatsächlich auch bei 0 begonnen. Case 0 ist zum "Abbrechen der Bestellung" Sieht man auch im Code. Dass man <0> drücken soll um keine weiteren Biere der Auswahl hinzuzufügen.

Aber Danke dir! Werde des mit derListgleich mal ausprobieren.

LG
Elmini08

17.05.2024 - 11:21 Uhr

Zitat von Th69

Dort verwendest du zwar kein goto, aber verbesserungswürdig ist der Code allemal (insb. wenn deine anderen case-Blöcke ähnlich aufgebaut sind).

  • Verwendung von Container-Datentypen (wie z.B. Array (T[]), List<T>, Directory<K, V>, s.a. [Übersicht] Collections (Auflistungen) ab .NET Framework 2.0) anstatt Einzelvariablen (wie bei dir sBiersorteNummer1- wie oben schon geschrieben, nehme ich an, du hast für die anderen case-Blöcke dann ähnlichen Code, nur eben bei den Variablen mit anderer Zahl am Ende?!)

Das ist richtig. Jeder case-Block ist ziemlich das selbe und Tatsächlich ändern sich nur die zahlen der einzelnen Variablen. Ich habe schon versucht mit Directory zu arbeiten, doch wie bekomme ich es hin, dass sich die Variablen in jedem Case ändern?

Bitte um Hilfe!

Danke!
Elmini08

16.05.2024 - 13:24 Uhr

Zitat von Th69

Lies mal über Spaghetticode.

Findest du das ist "Spaghetticode"?

					//User wählt Biersorte 1
					case 1:
						{
							if (iAnzahlVerfügbarkeitNummer1 <= 0)
							{
								Console.WriteLine("Diese Biersorte ist aktuell nicht verfügbar!");
                                Console.WriteLine();
                                break;
							}

							if (iAnzahlVerfügbarkeitNummer1 <= 5)
							{
                                Console.WriteLine("Es sind nur noch " + iAnzahlVerfügbarkeitNummer1 + " Flaschen dieser Biersorte verfügbar!");
                                Console.WriteLine();
                            }

							Console.WriteLine(sBiersorteNummer1 + "wurde deiner Aktuellen Auswahl hinzugefügt");
							Console.WriteLine("Preis pro Bier: {0:f} EUR", dPreisNummer1);
							Console.WriteLine();

							iAnzahlVerfügbarkeitNummer1--;
							
							dEndpreis += dPreisNummer1;

							Console.WriteLine("Preis deiner aktuellen Auswahl {0:f} EUR", dEndpreis);
							Console.WriteLine();
							Console.WriteLine("Möchtest du ein weiters Bier deiner Auswahl hinzufügen? Dann drücke die jeweilige Nummer der gewünschten Biersorte.");
							Console.WriteLine("Möchtest du kein weiters Bier drücke Taste <0>");
							Console.WriteLine();

							//Array für Ausgabe der Biere
							//ArrayZähler für nächste Belegung von Bit von Array
							sGewählteBiere[iArrayZähler] = sBiersorteNummer1 ;
							iArrayZähler += 1;

							//Maximal-Bestellwert    
							if (iArrayZähler == sGewählteBiere.Length)
							{
								Console.WriteLine("Maximal-Bestellwert erreictht. Bitte bezahlen sie nun.");
								Console.WriteLine();
								bWeitersBier = false;
							}
							break;
						}
16.05.2024 - 12:52 Uhr

Warum gotosein lassen? Begründung wäre schön xD

16.05.2024 - 07:36 Uhr

Hi nochmal,

kann jemand evtl. mal zu dem DateTime.Now ein Codebeispiel zur Verfügung Stellen? Ich verstehe nicht ganz wie ich des in eine Schleife packe.

Danke schonmal!

VG
Elmini08

Mein Programm aktuell:
using System;

namespace Getränkeautomat
{
    internal class ProgrammGetränkeautomat
    {
        static void Main()
        {
            //Begrüßung
            Console.WriteLine("Programm is booting");

            //hier soll die Zeit verstreichen in der man den bestimmten key drücken kann um in die AdminOberfläche zu kommen 
            string sAdminInterface = Convert.ToString(Console.ReadKey());

            if (sAdminInterface == "I")
            {
                goto CommandLineInterface;
            }
            
//ganz viel anderer Code
            
            CommandLineInterface:
            {
                Console.WriteLine("TEST");
            }
        }   
    }
}
15.05.2024 - 10:16 Uhr

Hi,

ich bin ganz neu hier.
Zur Info: Ich bin Azubi im ersten Lehrjahr und daher bin ich ein ziemlicher Neuling im Programmieren.

Ich möchte in meiner Konsolenanwendung, ähnlich wie bei einem Windows-boot, für eine bestimmte Zeit, einen bestimmten Key drücken können, um zu einem bestimmten Abschnitt des Codes zu gelangen, ähnlich wie, als würde ich das BIOS unter Windows aufrufen wollen. Falls in dieser Zeit die gewünschte Eingabe dann nicht erfolgt, soll ganz normal mit dem Code fortgefahren werden. Hat jemand Ahnung davon? Gerne auch mit Codebeispiel.

LG 
Elmini08