C# Ja nein abfrage?

3 Antworten

Console.ReadKey()

Oder ReadLine()

Ich empfehle dir Key statt Line

Was passiert entscheidest du mit einem If oder Switch.

Für genaueres müsste man den Aufbau deines Programms kennen


Maxi0105 
Beitragsersteller
 23.08.2020, 20:55
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Timers;
using System.Threading;

namespace Enigma
{
    class Program
    {
        static void Main(string[] args)
        {
            //Datentypen
            //string
            //int
            //double
            //bool

            Console.WriteLine("Hallo, wie heißt denn du?");
            string name = Console.ReadLine();
            Console.WriteLine("Willkommen " + name + ", wie geht es dir?");
            string befinden = Console.ReadLine();
            Console.WriteLine("Schön, dass es dir " + befinden + " geht, bitte folge mir");
            Thread.Sleep(2000);
            Console.WriteLine("*geht mit dir ins Wohnzimmer");
            Thread.Sleep(2000);
            Console.WriteLine("*bietet dir einen platz an* möchtest du etwas trinken?");





            Console.ReadLine()

        }
    }
}


0
Kiboman  23.08.2020, 21:03
@Maxi0105

schau mal in meiner anderen antwort, das hab ich das über einzelne methoden gemacht, hat den vorteil du kannst flexibel springen und es wird nicht extrem unübersichtlich bei meheren strängen.

1
Maxi0105 
Beitragsersteller
 23.08.2020, 21:05
@Kiboman

ja, aber das ist mir ehrlich gesagt zu unübersichtlich

0
Kiboman  23.08.2020, 21:07
@Maxi0105

so lange du ein lineares story board hast ist deine schreibweise vielleicht einfacher,

solltest du aber ja/nein auswerten und verzweigte antworten weiterspringen wünsche ich dir mit deiner löusung vielspaß, mal sehen wie weit du lust hast das in einem stück zu verschachteln.

mir fallen noch ein paar möglichkeiten mehr ein, aber wer den aufwand scheut etwas richtig zu machen sollte kein programmierer werden wollen.

pfushc lösungen "mal eben schnell" "sieht schöner aus" holen einen irgenwann ein und fängt wieder von vorne an.

1

Hier ein banales Beispiel kann man noch verbessern:

namespace test
{
    class Class1
    {
        public Class1 ()
        {
            Step1();
        }
        public void Step1()
        {
            Console.Clear();
            Console.WriteLine("Erste Frage, weiter zur nächsten?");


            Console.WriteLine("[Y/N]");
            switch (Console.ReadKey().KeyChar)
            {
                case 'y':
                case 'Y':
                    Step2();
                    break;
                case 'n':
                case 'N':
                    QuitStep1();
                    break;
            }
        }


        public void QuitStep1()
        {
            Console.Clear();
            Console.WriteLine("Programm beenden?");


            Console.WriteLine("[Y/N]");
            switch (Console.ReadKey().KeyChar)
            {
                case 'y':
                case 'Y':
                    break;
                case 'n':
                case 'N':
                    Step1();
                    break;
            }
        }
        public void Step2()
        {
            Console.Clear();
            Console.WriteLine("Zweite Frage");


            Console.WriteLine("[Y/N]");
            switch (Console.ReadKey().KeyChar)
            {
                case 'y':
                case 'Y':
                    break;
                case 'n':
                case 'N':
                    break;
            }
        }
    }
}


    Console.WriteLine("Skip?");
    var answer = Console.ReadLine();
    if (answer == "n")
    {
      Console.Write("Story zum Skippen");
    }
    Console.WriteLine("Und hier gehts weiter");
    Console.ReadKey();

Eigentlich ziemlich basic, oder?


Maxi0105 
Beitragsersteller
 23.08.2020, 21:03

jain, es soll danach weitergehen, so würde dann nach einem n das " story zum skippen" und "hier geht's weiter" kommen

0
Maxi0105 
Beitragsersteller
 23.08.2020, 21:17
@codinghelp

also, nach der frage ob man was trinken will und man mit nein antwortet soll der die nächste frage stellen, sagen wir mal was man vor hat und wenn man ja sagt soll der erst fragen was man trinken will und dann was man vor hat, also die selbe frage wie nach nein

0
Kiboman  23.08.2020, 21:22
@Maxi0105

auf die frage was man trinken will kommt ein MultipleChoice und das willst du tatsächlich Prozedural abarbeiten?

das ist Wahnsinn, nehme diese Kritik ernst, du stellst dir selber ein bein.

1
codinghelp  23.08.2020, 21:22
@Maxi0105
  private static bool hasDrunk = false;
  public static void Main()
  {
    Drink();
    Console.WriteLine("was hast du vor");
    Console.ReadLine();
    Drink();
    Console.ReadKey();
  }

  private static void Drink()
  {
    if (hasDrunk)
      return;
    Console.WriteLine("Trinken?");
    var answer = Console.ReadLine();
    if (answer == "j")
    {
      Console.Write("Ja haha ich trink was");
      hasDrunk = true;
    }
  }
0