Jak powrócić do początku pętli?

0

witam
Otóż mam pytanie do was mianowicie jak zrobić żeby w kodzie poniżej w pętli for zrobić aby gdy nie wprowadzi się żadnego znaku powtarzała się od początku program. Znaczy jak nic się nie wpisze jako nick będzie prosiło ponownie o wpisanie jakiegoś nicku (nawet jedna litera lub cyfra wystarczy) i tak przez cały czas aż wpiszę się jakiś znak lub kilka.

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
            
            Console.Write("Podaj swój nick: ");

            Gracz a = new Gracz();
            Console.WriteLine(a.nick);
            for (int i = 0; i>0; i++)
            {
                if (a.nick == "")
                {
                    Console.WriteLine("Nie wprowadziłeś żadnego znaku");
                    
                }
                else
                {
                    Console.WriteLine("\nTwój nowy nick to: " + a.nick);
                    break;
                    
                }
            }
            if (a.nick == "")
                Console.WriteLine("Nic nie wpisano");
                Console.ReadLine();
            
        }
        
    }
}
class Gracz
{
    public string nick = Console.ReadLine();
    int id;

    public static int idnastepny = 0;

} 
2

Może być np. coś w stylu (oczywiście musisz sobie dostosować):

            string nick = "";
            while (nick.Length == 0)
            {
                Console.Write("Podaj swój nick: ");
                nick = Console.ReadLine();
                if (nick.Length == 0)
                    Console.WriteLine("Nie wprowadziłeś żadnego znaku");
            }
            Console.WriteLine("Twój nowy nick to: " + nick);
2
kamciono5 napisał(a):

public string nick = Console.ReadLine();

nie powinieneś robić czegoś takiego w takim miejscu
nie powinieneś też tego przenosić do konstruktora - konstruktor powinien wykonywać się natychmiastowo - nie może operacja i/o go blokować

wydziel tę linijkę do osobnej metody, najlepiej żeby komunikację z konsolą przeprowadzała inna klasa niż klasa Game; wtedy będziesz mógł też sobie to spokojnie zapakować w pętlę

0

a np. jakbym chciał zrobić tablicę powiedzmy dwuwymiarową, w której będą się znajdować elementy: id i nick (id będzie przypisywane w kolejności a nick będzie wprowadzała osoba z klawiatury i tablica będzie miała tyle elementów ile zostanie wprowadzonych przez użytkowników z klawiatury to jak najsensowniej było by to zrobić?

0

Wstawić to co podał @kAzek wewnątrz pętli po Id.

1
    class Program
    {
        static void Main(string[] args)
        {
            string imie;

            do
            {
                Console.WriteLine("Podaj swoje imię: ");
                imie = Console.ReadLine();
            } while (imie.Length == 0);

            Console.WriteLine("Twoje imię to {0}", imie);
            Console.ReadLine();
        }
    }

a np. jakbym chciał zrobić tablicę powiedzmy dwuwymiarową, w której będą się znajdować elementy: id i nick (id będzie przypisywane w kolejności a nick będzie wprowadzała osoba z klawiatury i tablica będzie miała tyle elementów ile zostanie wprowadzonych przez użytkowników z klawiatury to jak najsensowniej było by to zrobić?

Stworzyć nową klasę która zawiera dwa pola Id i Nick, a później stworzyć Listę do której będziesz dodawał te elementy tak długo, aż nie dostaniesz Imienia.Length == 0 lub innego warunku zakończenia pętli.

1 użytkowników online, w tym zalogowanych: 0, gości: 1