2 svar
347 visningar
Christoffer behöver inte mer hjälp
Christoffer 2 – Fd. Medlem
Postad: 14 mar 2020 23:01 Redigerad: 15 mar 2020 00:00

Hjälp!! användning av metoder.

Hej, jag pluggar programmering 1

Jag har i uppgift att skriva ett program där man ska skriva in en temperatur i Fahrenheit, sen ska man ha en metod som omvandlar Fahrenheit till Celsius som sen används i koden för att bestämma den rätta temperaturen.

Max temperaturen får inte vara högre än 77, mindre än 73 och den perfekta temperaturen är 75.

Mitt problem är att 168-171 som man skriver in ger mig inget svar alls det kommer bara blanka steg tills jag skriver in något högre eller lägre.

Min metod ligger längs ner.

using System;

namespace bastu2
{
class Program
{
static void Main(string[] args)
{

double maxTemp = 77.0;                // tempratur variabel.
double minTemp = 73.0;                // tempratur variabel.
double bästaTemp = 75.0;            // tempratur variabel.

string input;                     //till att få en string till en double.
double nr1;                     //till att få en string till en double.


Console.Write("what temprature do you want: ");

 

     do
      {
         input = Console.ReadLine();                                 // omvandlar string till double.
         nr1 = double.Parse(input);

         if (FahrToCel(nr1) == bästaTemp)                             //if loop som kollar vad temperaturen är.
         {
         Console.WriteLine("This is the optimal temprature ");
          break;
          }

         else if (FahrToCel(nr1) < minTemp)
         {
         Console.WriteLine("This is to low temprature");
         Console.Write(" Type in higher value:");
         }

         else if (FahrToCel(nr1) > maxTemp)
         {
         Console.WriteLine("This is to high temprature");
         Console.Write(" Type in lower value:");
         }

 

     } while ((FahrToCel(nr1) == bästaTemp) || (FahrToCel(nr1) <= maxTemp) || (FahrToCel(nr1) >= minTemp));

Console.WriteLine("the temprature you chose was " + FahrToCel(nr1) + " Celcius and you typed in " + nr1 + " fahrenheit");
Console.ReadKey();

       }

static public double FahrToCel(double nr1)        // metod till att omvandla F till C.
{
double cel;
double fahr = (nr1 - 32) * 5 / 9;
cel = Math.Round(fahr, 1);

return cel;

}
}
}

Lindehaven 820 – Lärare
Postad: 15 mar 2020 00:45

Villkoret för att fortsätta loopen är alltid sant så det är en oändlig loop:

while ((FahrToCel(nr1) == bästaTemp) || (FahrToCel(nr1) <= maxTemp) || (FahrToCel(nr1) >= minTemp));

Du behöver 'and' som logisk operator:

while ((FahrToCel(nr1) <= maxTemp) && (FahrToCel(nr1) >= minTemp));

Christoffer 2 – Fd. Medlem
Postad: 15 mar 2020 10:11

Tack för svar.

Svara
Close