Оператор CS0019 нельзя применять к операндам типа 'bool' и 'int'
Эта программа в ответ на задание:
"Создать метод с именем Sum()
который принимает любое количество целочисленных параметров и отображает их сумму. Напиши Main()
метод, который демонстрирует, что Sum()
Метод работает правильно, когда передано одно, три, пять или массив из десяти целых чисел. Сохранить программу как UsingSum.cs
".
из Microsoft® Visual C#® 2008, Введение в объектно-ориентированное программирование, 3e, Джойс Фаррелл
Мой код в части "//step 1:" получает ошибку CS0019, которая утверждает, что ее нельзя применить к операндам типа bool
а также int
,
Я очень подозреваю, что есть и другие проблемы с этим кодом, но это большое улучшение по сравнению с тем, что у меня было четыре часа назад...
using System;
public class UsingSum
{
public static void Main()
{
Sum();
}
public static void Sum()
{
// Step 1: Addition of one, three, five
bool q, r, s;
int firstTotal, n, o, p;
string k, l, m;
Console.Write("Type the number 1: ");
k = Console.ReadLine();
n = Convert.ToInt32(k);
q = Convert.ToBoolean(k);
Console.WriteLine();
if (q == 1)
Console.WriteLine("Input accepted.");
else if (!(q == 1))
{
Console.WriteLine("Error: You didn't type the number 1. Please try again.");
Console.Write("Type the number 1: ");
k = Console.ReadLine();
n = Convert.ToInt32(k);
q = Convert.ToBoolean(k);
}
}
Console.Write("Type the number 3: ");
l = Console.ReadLine();
r = Convert.ToBoolean(l);
o = Convert.ToInt32(l);
Console.WriteLine();
if (r <= 2 || r >= 4)
{
Console.WriteLine("Error: You didn't type the number 3. Please try again.");
Console.Write("Type the number 3: ");
l = Console.ReadLine();
r = Convert.ToBoolean(l);
o = Convert.ToInt32(l);
}
else
if (r = 3)
Console.WriteLine("Input accepted.");
Console.Write("Type the number 5: ");
m = Console.ReadLine();
p = Convert.ToInt32(m);
s = Convert.ToBoolean(m);
Console.WriteLine();
if (s <= 4 || s >= 6)
{
Console.WriteLine("Error: You didn't type the number 5. Please try again.");
Console.Write("Type the number 5: ");
m = Console.ReadLine();
p = Convert.ToInt32(m);
s = Convert.ToBoolean(m);
}
else
if (s = 5)
Console.WriteLine("Input accepted.");
firstTotal = n + o + p;
Console.WriteLine("{0} + {1} + {2} = {3}", n, o, p, firstTotal);
// Step 2: Entering integers for array[10]
int a, arrayTotal, b, c, d, e, f, g, h, i, j, unlimited;
Console.Write("Enter first integer for addition: ");
a = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter second integer for addition: ");
b = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter third integer for addition: ");
c = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter forth integer for addition: ");
d = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter fifth integer for addition: ");
e = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter sixth integer for addition: ");
f = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter seventh integer for addition: ");
g = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter eighth integer for addition: ");
h = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter ninth integer for addition: ");
i = Convert.ToInt32(Console.ReadLine());
Console.Write("Enter tenth integer for addition: ");
j = Convert.ToInt32(Console.ReadLine());
arrayTotal = a + b + c + d + e + f + g + h + i +j;
Console.WriteLine("The total of {0} + {1} + {2} + {3} + {4} + {5} + {6} + {7} + {8} + {9} = {10}",
a, b, c, d, e, f, g, h, i, j, arrayTotal);
// Step 3: Unlimited array addition
int[] arrayTwo;
int total, y;
string ADD, x;
while(Console.Write("Enter an integer for addition, or type ADD to calculate the sum: "))
{
x = Console.ReadLine();
y = Convert.ToInt32(x);
if (x == ADD)
Console.WriteLine("Calculating the total sum");
}
for (y = 0; y < arrayTwo.Length; ++y)
{
total = arrayTwo[y] + arrayTwo[y];
++arrayTwo[y];
Console.WriteLine("========================");
Console.WriteLine("=/n= The total is: {0} =/n=", total);
Console.WriteLine("========================");
}
}
}
2 ответа
Ты не можешь писать (q == 1)
в C#, потому что q
это bool
а также 1
является int
,
q
можно сравнивать только с другим логическим выражением, например true
, false
другая булева переменная и т. д.
Просто если кто-то прочитает этот вопрос и ему нужно сравнить bool
с int
:
(Convert.ToInt32(q) == 1)
Я получил эту и многие другие ошибки, когда случайно открыл решение с Visual Studio 2015, когда оно было разработано в VS2017.
Другие ошибки включали:
; ожидается
} ожидается