Я пытаюсь сделать логический тест, так что если давление в шинах ниже 35 или более 45, система выдает «плохую инфляцию».Почему мой булевский тест в java всегда терпит неудачу?
В моем классе я должен использовать логическое значение, которое я и пытался. Однако возвращаемое значение boolean всегда верно. Я не понимаю, почему.
public class tirePressure
{
private static double getDoubleSystem1() //Private routine to simply read a double in from the command line
{
String myInput1 = null; //Store the string that is read form the command line
double numInput1 = 0; //Used to store the converted string into an double
BufferedReader mySystem; //Buffer to store input
mySystem = new BufferedReader (new InputStreamReader (System.in)); // creates a connection to system files or cmd
try
{
myInput1 = mySystem.readLine(); //reads in data from console
myInput1 = myInput1.trim(); //trim command cuts off unneccesary inputs
}
catch (IOException e) //checks for errors
{
System.out.println ("IOException: " + e);
return -1;
}
numInput1 = Double.parseDouble (myInput1); //converts the string to an double
return numInput1; //return double value to main program
}
static public void main (String[] args)
{
double TireFR; //double to store input from console
double TireFL;
double TireBR;
double TireBL;
boolean goodPressure;
goodPressure = false;
System.out.println ("Tire Pressure Checker");
System.out.println (" ");
System.out.print ("Enter pressure of front left tire:");
TireFL = getDoubleSystem1(); //read in an double from the user
if (TireFL < 35 || TireFL > 45)
{
System.out.println ("Pressure out of range");
goodPressure = false;
}
System.out.print ("Enter pressure of front right tire:");
TireFR = getDoubleSystem1(); //read in an double from the user
if (TireFR < 35 || TireFR > 45)
{
System.out.println ("Pressure out of range");
goodPressure = false;
}
if (TireFL == TireFR)
System.out.print (" ");
else
System.out.println ("Front tire pressures do not match");
System.out.println (" ");
System.out.print ("Enter pressure of back left tire:");
TireBL = getDoubleSystem1(); //read in an double from the user
if (TireBL < 35 || TireBL > 45)
{
System.out.println ("Pressure out of range");
goodPressure = false;
}
System.out.print ("Enter pressure of back right tire:");
TireBR = getDoubleSystem1(); //read in an double from the user
if (TireBR < 35 || TireBR > 45)
{
System.out.println ("Pressure out of range");
goodPressure = false;
}
if (TireBL == TireBR)
System.out.print (" ");
else
System.out.println ("Back tire pressures do not match");
if (goodPressure = true)
System.out.println ("Inflation is OK.");
else
System.out.println ("Inflation is BAD.");
System.out.println (goodPressure);
} //mainmethod
} // tirePressure Class
Ваш код достаточно ясен, что вам не нужны комментарии, так как они просто повторяют ту же информацию (это хорошо!).для дальнейшего использования, самый важный момент для запоминания - объяснить, ПОЧЕМУ вы что-то делаете, а не то, что вы делаете. : D –
Вы также можете взглянуть на 'java.util.Scanner'. – polygenelubricants