2017-01-25 8 views
-1

Я продолжаю получать ошибку при попытке сделать BMR-калькулятор, который задает пользователям возраст, вес, рост и пол. Я использую оператор if, чтобы определить формулу для BMR для печати. Но я продолжаю получать ошибку:Невозможно неявно преобразовать тип int в bool, dispite using bool и operator - не может быть применен

Cannot implicitly convert type int to bool

Я новичок и никогда их не видел. Вот мой код.

public static void Main (string[] args) 
{ 
    int weight, height, age, gender; 

    Console.Write("Enter your age in years"); 
    age = Convert.ToInt32 (Console.ReadLine()); 
    Console.WriteLine ("Enter your weight in pounds"); 
    weight = Convert.ToInt32 (Console.ReadLine()); 
    Console.WriteLine ("Enter your height in inches"); 
    height = Convert.ToInt32 (Console.ReadLine()); 

    Console.WriteLine ("Gender? Enter male/female (1 for Male, 2 for Female)"); 
    gender = Convert.ToInt32 (Console.ReadLine()); 

    if (gender = 1) 
    { 
     Console.WriteLine ("Age: " + age); 
     Console.WriteLine ("Height:" + height); 
     Console.WriteLine ("Weight:" + weight); 
     Console.WriteLine ("Gender:" + gender); 

     Console.WriteLine ("Your BMR is" + 66 + (6.23 * weight) + (12.7 * height) - (6.8* age)); 
    } 

    if (gender = 2) 
    { 
     Console.WriteLine ("Age: " + age); 
     Console.WriteLine ("Height:" + height); 
     Console.WriteLine ("Weight:" + weight); 
     Console.WriteLine ("Gender:" + gender); 

     Console.WriteLine ("Your BMR is " + 655 + (4.35 * weight) + (4.7 * height) - (4.7 * age)); 
    } 
} 
+2

'=' и '' == являются разные операторы ... – BradleyDotNET

+0

Спасибо, что помогли за эту ошибку, еще ПОЛУЧАТЬ «Оператор„-.“Не может быть применен к операндам типа строки и двойной –

+1

Добавить скобки вокруг ваших вычислений, так что это похоже на «ваш BMR» + (66 + ...) '. Ваша проблема - порядок операций. Он объединяет« ваш BMR »и« 66 », а затем следующий, а затем следующий и затем он добирается до '-' и поднимает руки вверх. – itsme86

ответ

0

Вам нужно указать постоянные значения в десятичные числа и поместить скобу вокруг вычисления.

public static void BMR(string[] args) 
{ 
    int weight, height, age, gender; 

    Console.Write("Enter your age in years"); 
    age = Convert.ToInt32(Console.ReadLine()); 
    Console.WriteLine("Enter your weight in pounds"); 
    weight = Convert.ToInt32(Console.ReadLine()); 
    Console.WriteLine("Enter your height in inches"); 
    height = Convert.ToInt32(Console.ReadLine()); 

    Console.WriteLine("Gender? Enter male/female (1 for Male, 2 for Female)"); 
    gender = Convert.ToInt32(Console.ReadLine()); 

    if (gender == 1) 
    { 
     Console.WriteLine("Age: " + age); 
     Console.WriteLine("Height:" + height); 
     Console.WriteLine("Weight:" + weight); 
     Console.WriteLine("Gender:" + gender); 

     Console.WriteLine("Your BMR is" + (66.0m + (6.23m * weight) + (12.7m * height) - (6.8m * age))); 
    } 
    else 
    { 
     Console.WriteLine("Age: " + age); 
     Console.WriteLine("Height:" + height); 
     Console.WriteLine("Weight:" + weight); 
     Console.WriteLine("Gender:" + gender); 

     Console.WriteLine("Your BMR is " + (655.0m + (4.35m * weight) + (4.7m * height) - (4.7m * age))); 
    } 
}