Loading...
MitkoDonev avatar MitkoDonev 1 Точки

BooleanVariable

Трябва да напишем код, който да определя  "male" или "female", реших малко да усложна задачата, но зациклих.

Проблема е следния, въвеждам цифра различна от 1 или 2 и кода спира да работи дори и след първа "грешна" въведена на въведа 1 или 2. Ако въведа 1 или 2 тряба да го въведа 2 пъти, за да проработи. Ето го и кода:

using System;

class BooleanVariable
{
    static void Main()
    {
        int male = 1;
        int female = 2;

        Console.WriteLine("\n" + "Write in your gender!" + "\n" + "Write in {0} for male: " + "\n" + "Write in {1} for female:", 2, 1);
        int a = int.Parse(Console.ReadLine());
        string input = Console.ReadLine();

        while (a < 1 || a > 2)
        {
            input = Console.ReadLine();
        }

        if (a % 2 == 0)
        {
            Console.WriteLine("Gender Male!");
        }
        else
        {
            Console.WriteLine("Gender Female!");
        }

    }
}

Тагове:
0
Programming Basics
Angeld55 avatar Angeld55 20 Точки

Прочетената цифра я записваш в input ,а тлтрябва да бъде в "a".И в while цикъла трябва да парснеш!

0
MitkoDonev avatar MitkoDonev 1 Точки

ако string input = Console.ReadLine(); го заместя е "а" Visual Stuioto ми казва: "Cannot implicitly convert type 'string' to 'int'

А как да "парсна" input = Console.ReadLine(); ??

0
Mhristoforova avatar Mhristoforova 166 Точки

Здравей,

Принципно наистина си си усложнил живота, защото първите две променливи реално можеш и без тях. Също, при наличието на парсването, променливата за инпут е излишна. А самото парсване се налага, за да можеш да сравниш числото с другото число, ако не го направиш става нещо от рода на дали две яйца са равни на три вилици.

Това е моето предложение за цялостния код :)

 

using System;
class BooleanVariable
{
    static void Main()
    {
        
        Console.WriteLine("\n" + "Write in your gender!" + "\n" + "Write in {0} for male: " + "\n" + "Write in {1} for female:"21);
        int a = int.Parse(Console.ReadLine());
        while (a < 1 || a > 2)
        {
            a = int.Parse(Console.ReadLine());  //Тук се случва парсването на подадените от потребителя данни
        }
        if (a==1)
        {
            Console.WriteLine("Gender Male!");
        }
        else
        {
            Console.WriteLine("Gender Female!");
        }
    }
}

 

Дано съм помогнала! Успех!

 

5
zisov4eto avatar zisov4eto 19 Точки

Митко потърси ме във фейсбук за отборният проект - Mario Zisov.

0
agoranov avatar agoranov 12 Точки

Първото нещо което ми прави впечетление е, че нямаш условие за излизане от while цикълът, освен ако не въведеш грешен input (различен от 1 или 2).

Второто нещо е, че въобще не ти трябва while цикъл. Ти вече си прочел полът на горният ред с  int a = int.Parse(Console.ReadLine()); Моята препоръка за кодът е (разбира се ако искаш да го запазиш толкова сложен): 

        int male = 1;
        int female = 2;

        Console.WriteLine("\n" + "Write in your gender!" + "\n" + "Write in {0} for male: " + "\n" + "Write in {1} for female:", 2, 1);
        //string input = Console.ReadLine(); - стрингът наистина не ти трябва

        while (true) - цикълът се върти докато ти не му кажеш да спре.
        {
             int a = int.Parse(Console.ReadLine());

              if (a == male) - male и female си ги задал в началоти на кодът/ проверката с деление с остатък би била полезна за проверка за четно и нечетно число, но не мисля, че е добра идея тук.
              {
                     Console.WriteLine("Gender Male!");
               }
               else if(a==female)
               {
                   Console.WriteLine("Gender Female!");
               }

               else - излизаш от цикълът;

               {

                  break;

               }

               Console.WriteLine("\n" + "Write in your gender!" + "\n" + "Write in {0} for male: " + "\n" + "Write in {1} for female:" + "\n" + "Write in anything else to exit:", 2, 1);
        }

        

Но повечето от кодът е излишен. Като цяло бих махнал while цикълът и директно правиш проверките.

1
28/03/2016 15:12:36
MitkoDonev avatar MitkoDonev 1 Точки

Темата е от 21/12/2015, но все пак мерси за отговора ;)

0
Можем ли да използваме бисквитки?
Ние използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Можете да се съгласите с всички или част от тях.
Назад
Функционални
Използваме бисквитки и подобни технологии, за да предоставим нашите услуги. Използваме „сесийни“ бисквитки, за да Ви идентифицираме временно. Те се пазят само по време на активната употреба на услугите ни. След излизане от приложението, затваряне на браузъра или мобилното устройство, данните се трият. Използваме бисквитки, за да предоставим опцията „Запомни Ме“, която Ви позволява да използвате нашите услуги без да предоставяте потребителско име и парола. Допълнително е възможно да използваме бисквитки за да съхраняваме различни малки настройки, като избор на езика, позиции на менюта и персонализирано съдържание. Използваме бисквитки и за измерване на маркетинговите ни усилия.
Рекламни
Използваме бисквитки, за да измерваме маркетинг ефективността ни, броене на посещения, както и за проследяването дали дадено електронно писмо е било отворено.