2016-07-20 4 views
-4

Создание программы, я хочу, чтобы петли (для школы, чтобы ее основной), пока они ввода 167. Вот что я не получил до сих пор, но он не работает:C# сделать в то время как цикл не работает

public static void Main(string[] args) 
    { 
     { } 
     Console.WriteLine("Welcome to this swedish sauna!"); 
     Console.Write("Please enter the desired temperature: "); 
     double fahrenheit = double.Parse(Console.ReadLine()); 
     double celsius = FahrToCels(fahrenheit); 
     bool stop = false; 
     do 
      if (celsius > 77) 
      { 
       Console.WriteLine("The temperature {0}°C is too high, the highest acceptable temperature is 170°F (77°C).", celsius); 
       Console.Write("Please re-enter the temperature that you wish to have: "); 
       Console.ReadLine(); 
      } 
      else if (celsius < 73) 
      { 
       Console.WriteLine("The temperature {0}°C is too low, the lowest acceptable temperature is 163°F (73°C).", celsius); 
       Console.Write("Please re-enter the temperature that you wish to have: "); 
       Console.ReadLine(); 
      } 
     while (celsius == 75); 

      { 
      stop = true; 

    Console.WriteLine("You have reached the optimal temperature of the sauna. No more adjustments needed."); 
      Console.ReadKey(); 
     } 
    } 
    public static double FahrToCels(double fahr) 
    { 

     double temp = (fahr - 32) * 5/9; 
     return temp; 

Я не могу получить цикл для правильной работы, что мне не хватает?

+0

Можете ли вы рассказать о том, как он не работает? Как правило, цикл работает так, как предполагается. Он будет действовать так, как вы его запрограммировали. –

+0

Я не вижу никакой петли здесь, которая ждет значения '167' любым способом. Единственный цикл в вашем коде будет продолжать цикл _only_, если для переменной 'celsius' установлено значение' 75'. Почему вы ожидаете какого-либо другого поведения? Вопрос не совсем понятен ... Пожалуйста, объясните более подробно, почему вы думаете, что код должен делать то, что вы утверждаете, что он должен делать. –

ответ

0

Проблема, с которой вы сталкиваетесь, не связана с тем, что ваша строка «while» должна читать «while (celsius! = 75);» вместо "while (celsius == 75);". Следующая проблема заключается в том, что когда консоль читает строку, вы не назначаете эту переменную переменной celsius, поэтому последняя переменная застревает и не изменяется.

Смежные вопросы