2016-07-20 12 views
-4

arbeitet, ein Programm zu machen, die ich in einer Schleife will (für die Schule so seinen Grundes), bis sie Eingang 167. Heres, was ich so weit gekommen, aber es funktioniert nicht:C# tun while-Schleife nicht

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; 

Ich kann nicht bekommen die Schleife funktioniert einwandfrei, was fehlt mir?

+0

Können Sie das näher erläutern, wie man es nicht funktioniert? Im Allgemeinen funktioniert die Schleife wie es soll. Es wird so funktionieren, wie Sie es programmiert haben. –

+0

Ich sehe keine Schleife hier, die für den Wert wartet '167' in irgendeiner Art und Weise. Die einzige Schleife in Ihrem Code wird weiterhin _only_ durchlaufen, wenn die Variable 'celsius' auf' 75' gesetzt ist. Warum erwartest du irgendein anderes Verhalten? Die Frage ist überhaupt nicht klar ... bitte näher erläutern, warum Sie den Code denken sollte tun, was Sie behaupten, es tun soll. –

Antwort

0

Das Problem, das Sie haben, werden damit nicht Looping ist becuase Ihre „während“ Zeile sollte „während (celsius = 75!);“ anstelle von "while (celsius == 75);". Die nächste Ausgabe, die Sie haben, ist, dass, wenn die Konsole ist das Lesen der Zeile, die Sie nicht sind diese Variable auf die celsius Variablen zugewiesen wird, so dass die letzte Variable stecken zu bleiben und nicht zu ändern.