Napisz program, który będzie pytał użytkownika o podanie cyfry dopóki użytkownik nie poda właściwej cyfry.

0

Witam. Jak w tytule. Mam zrobić program proszący nas o podanie cyfry dopóki nie będzie ona właściwa. I trzeba wykorzystać pętle WHILE.

  Console.WriteLine("Losowanie cyfry");
            Random LosowanieCyfry = new Random();

            for (int i = 1; i < 2; i++)
            {

                Console.WriteLine($"{LosowanieCyfry.Next(0, 9)}");
            }
            int a;
            Console.WriteLine("Podaj cyfre");
            a = Convert.ToInt32(Console.ReadLine());
           while ( Jaki warunek?)


Mam na razie tyle, natomiast nie wiem jaki warunek podać w while. Mam zrobioną maszynę losującą mi cyfre z zakresu od 0 do 9.
Jak mam się w while odwołać do niej. A także jak zastąpić Console.WriteLine($"{LosowanieCyfry.Next(0, 9)}"); tak żeby mi nie wyświetlało tej wylosowanej liczby ale, żeby mi losowało liczby z zakresu 0-9.

0

Hej

pytania jaką cyfre ma podać użytkownik zeby petla while sie zakończyła ? cyfra ma byc stała czy wprowadza przed działaniem aplikacji ?

0

@sight: Maszyna najpierw losuje, po czym jest komunikat "Podaj cyfre" wtedy podaje się cyfre jeśli dobra wyskakuje komunikat jeśli zła analogicznie + znowu możliwość podania innej liczby.

1

`Random random = new Random();

        int correctAnswerNumber = random.Next(1, 10); // zapisujesz wylosowana liczbe z przedzialu
        int userAnswerNumber;


        do // pętla do..while bo wykonuje się przynajmniej raz
        {
            Console.WriteLine("Zgadnij liczbę:");
            bool isNumber = int.TryParse(Console.ReadLine(), out userAnswerNumber); // używam tryParse, jako jeden ze sposobów zabezpieczenia, aby użytkownik nie podał innego znaku niż liczna

            if (!isNumber) // wpisany tekst nie jest liczba calkowita. Mozesz dorzucic tutaj sprawdzenie czy znajduje sie w wymaganym przedziale
                Console.WriteLine("Wpisałeś niepoprawne dane. Proszę wpisać liczbę.");             
            else if(userAnswerNumber == correctAnswerNumber)
            {
                Console.WriteLine("Gratulacje, wygrałeś!");
                break; // brak przerywa pętlę
            }
            else
                Console.WriteLine("Niestety nie udało się, spróbuj jeszczę raz.");

        } while (userAnswerNumber != correctAnswerNumber); // pętla wykonuje się dopóki użytkownik nie poda poprawnej odpowiedzi. Tak naprawdę to jest tutaj niepotrzebne, bo break przerywa pętlę. Zostawiam, żebym spróbował sobie zrobić z do..while bez instrukcji break;
        Console.ReadKey();`

Mam nadzieje, że nie szukasz gotowca na informatyke. Sposobów jest wiele. W środek wcisnąłem podpowiedź do innego rozwiązania.

0

Console.WriteLine("Losowanie cyfry");
Random LosowanieCyfry = new Random();
for (int i = 1; i < 2; i++)
{
    Console.WriteLine($"{LosowanieCyfry.Next(0, 9)}");
}
int a=10;
while ( a != LosowanieCyfry)
{
    Console.WriteLine("Podaj cyfre");
    a = Convert.ToInt32(Console.ReadLine());
}

0

Po co ten for?

for (int i = 1; i < 2; i++)
{
    Console.WriteLine($"{LosowanieCyfry.Next(0, 9)}");
}

Wylosowaną liczbę wypisujesz na ekran ale jej nie przypisujesz do zmiennej a

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