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!");
}
}
}
ако string input = Console.ReadLine(); го заместя е "а" Visual Stuioto ми казва: "Cannot implicitly convert type 'string' to 'int'
А как да "парсна" input = Console.ReadLine(); ??
Здравей,
Принципно наистина си си усложнил живота, защото първите две променливи реално можеш и без тях. Също, при наличието на парсването, променливата за инпут е излишна. А самото парсване се налага, за да можеш да сравниш числото с другото число, ако не го направиш става нещо от рода на дали две яйца са равни на три вилици.
Това е моето предложение за цялостния код :)
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:", 2, 1);
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!");
}
}
}
Дано съм помогнала! Успех!
Митко потърси ме във фейсбук за отборният проект - Mario Zisov.