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;
}
}
}
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));
Tack för svar.