C# Program działający do podania komendy dalej/koniec


(Patryk Piasecki) #1

Witam, piszę program zbierający dane kontaktowe znajomych i jako, że dopiero uczę się programowania w CiSzarpie nie mam pojęcia jakich zmiennych użyć aby program zbierał te dane tak jakby w pętli do momentu podania przez użytkownika komendy “koniec” oraz by przechodził do początku pętli po podaniu komendy “dalej”.


(nnick) #2

Wszystko co ma się powtarzać w pętelkę z warunkiem logicznym, if’y z użyciem https://msdn.microsoft.com/pl-pl/library/858x0yyx(v=vs.110).aspx do sprawdzenia czy dalej czy koniec. Całego rozwiązania nie dostaniesz, bo to tak prosty i podstawowy przypadek że musisz sam to ogarnąć żeby ruszyć dalej z nauką.


(Patryk Piasecki) #3

Jeśli wrzucę wszystko w If’a to nawet na początku będzie wymagał wpisania komendy odpowiedzialnej za powtarzanie funkcji.


(Fizyda) #4
do
{
}while(cmd != "koniec")

 


(slepcu) #5

Tak jak napisał wyżej Fizyda - taka pętla wpierw robi instrukcje a dopiero potem sprawdza warunek.


(Patryk Piasecki) #6

Mam kolejny problem dotyczący innego zadania.


(Fizyda) #7
while (start != "start") ;
                {
                    StreamWriter Dziennik = new StreamWriter("asdf.txt");

                    Dziennik.WriteLine("Captain’s log");

                    Dziennik.WriteLine("Stardate" + " " + thisDay.ToString("d"));

                    Dziennik.WriteLine(Console.ReadLine());

                    Dziennik.WriteLine("Jean-Luc Picard");

                    end = Console.ReadLine();
                    Dziennik.Close();
                }
                while (end != "koniec") ;

Nie ma takiej pętli w żadnym języku.

Albo do{…}while() albo while(){}.


(slepcu) #8
class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Write 'start'...");
            var start = Console.ReadLine();
            if (start != null && start.Equals("start", StringComparison.OrdinalIgnoreCase))
                AddToLog("asdf.txt");
        }

        private static void AddToLog(string logFile)
        {
            var thisDay = DateTime.Today;
            using (var log = new StreamWriter(logFile))
            {
                Console.WriteLine("Captain’s log");
                log.WriteLine("Captain’s log");
                Console.WriteLine("Stardate" + " " + thisDay.ToString("d"));
                log.WriteLine("Stardate" + " " + thisDay.ToString("d"));
                while (true)
                {
                    var line = Console.ReadLine();
                    if (!string.Equals(line, "end", StringComparison.OrdinalIgnoreCase))
                    {
                        log.WriteLine(line);
                    }
                    else
                    {
                        break;
                    }
                }
                Console.WriteLine("Jean-Luc Picard");
                log.WriteLine("Jean-Luc Picard");

            }
        }
    }

Przeanalizuj sobie, zadawaj pytania.


(Patryk Piasecki) #9

Dziękuje za pomoc ale taka opcja rozwiązania zadania jest zbyt trudna dla mnie patrząc na to, że muszę wiedzieć dokładnie co za co odpowiada w zadaniu.