CS0019 Operator cannot be applied to operands of type 'bool' and 'int'

109,301

Solution 1

You can't write (q == 1) in C#, because q is a bool and 1 is an int.

q can only be compared to another boolean expression, e.g. true, false, another boolean variable, etc.

Solution 2

Just if someone read this question and needs comparing a bool with an int:

(Convert.ToInt32(q) == 1)
Share:
109,301

Related videos on Youtube

Nooob
Author by

Nooob

Updated on April 28, 2020

Comments

  • Nooob
    Nooob about 4 years

    This program is in response to the assignment:

    "Create a method named Sum() that accepts any number of integer parameters and displays their sum. Write a Main() method that demonstrates that the Sum() method works correctly when passed one, three, five, or an array of ten integers. Save the program as UsingSum.cs."

    from Microsoft® Visual C#® 2008, An Introduction to Object-Oriented Programming, 3e, Joyce Farrell

    My code in the "//step 1:" part is getting the CS0019 error, which states that it cannot be applied to operands of type bool and int.

    I highly suspect there are also other problems with this code, but it's a great improvement over what I had four hours ago…

    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("========================");
         }                                         
      }
    }