Помогите, пожалуйста, исправить ошибки
Задание: Даны два числа. Определите цифры, которые входят как в первый так и второго числа.
Выдает ошибки:
Использование локальной переменной "d", которой не присвоено значение.
Левая часть выражения присваивания должна быть переменной, свойством или индексатором.
class Program
{
static void Main(string[] args)
{
int a, k,b;
String d;
Console.WriteLine("Vvod a");
a = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("Vvod b");
b = Convert.ToInt32(Console.ReadLine());
k = b;
while(k>0)
{
if (k % 10 = d)
Console.WriteLine(d, ' ');
}
k= k / 10;
Console.ReadKey();
}
}
В ошибке вам очень подробно все описали.
Когда вы пишите String d;
вы объявляете переменную, но еще не говорите, что там есть(не присвоили значение). Т.е вы назвали имя человека, но человека с таким именем нет. Если вы позовете человека по имени, то никто не откликнется. Ибо вы объявили об и только.
В вашем коде есть другой случай(выше строчки 1) int a,k,b;
Тут вы тоже объявляете 3 переменных, но не присваиваете значение, но перед тем как использовать вы пишите эту строчку a = Convert.ToInt32(Console.ReadLine());
. В этой строчке вы присваиваете переменной a
значение, которое получите справа от знака =
(т.е из выражения).
После того, как это строчка сработает, в переменной а
у вас уже наконец что-то есть. Т.е есть и имя и человек(по аналогии).
Дальше на строчке 2 вы пытаетесь использовать переменную d
в условии. Заметьте, не присвоить ей значение, а уже использовать. Во первых делаете это вы не правильно
Вместо
if(k % 10 = d)
Надо
if(k % 10 == d)
В первом случае это оператор присваивания, во втором случае оператор сравнения(слева в списке найдете эти 2 оператора) https://docs.microsoft.com/ru-ru/dotnet/csharp/language-reference/operators/
Вот вам и ошибка. Вы объявили переменную, не присвоили ей значение и пытаетесь по имени получить значение. А значения то нет.
P.S. Есть еще вероятность, что вы d
с b
, но дальше в строчке Console.WriteLine(d, ' ');
вам все равно нужна переменная d
.
В строке 2, как написал @Igor вы пытаетесь число со строкой сравнить. Это выглядит нелогично. Вы же не можете сравнить цифру 1 и слово "чебурек"?
Получает вы задаете вопрос: а равна ли цифра 1 "чебуреку"? И что вам нужно на это ответить?
if (k % 10 = d)
Если тут должна быть операция сравнения, то это ==, а 'd' не присвоено никакого значения.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу учебный проект совсем скоро сдача, и как всегда проблемы у библиотеки EMGU CV(open cv) отобрали патент на SURF методИ он был отключен в сборке
У меня есть две программы которые просто проверяют наличие процессов друг-друга методом SystemDiagnostics