2016-05-23 10 views
-4

Ich brauche Hilfe bei der Festlegung meiner boolean, ich bin sehr neu in der Programmierung und mein Professor Englisch ist arm.Easy Java Boolean

Ich brauche 5 bis mpg hinzufügen, wenn highwaytrue und 2 subtrahieren, wenn cityfalse ist.

import java.util.Scanner; 

public class AdvancedTripCalc { 
    public static void main(String[] args) { 
     // New Trip Calc. 
     String firstname; 
     int mpg; 
     int miles; 
     double price; 
     double totalcost; 

     Scanner in = new Scanner(System.in); 
     System.out.println("Please enter your First Name"); 
     firstname = in.nextLine(); 
     System.out.println("Please enter the MPG of your car"); 
     mpg = in.nextInt(); 
     boolean highway = true; 
     boolean city = false; 
     if (highway == true) { 
      mpg = mpg + 5; 
     } 
     if (city == false) { 
      mpg = mpg - 2; 
     } 
     System.out.println("Enter true if trip is on the highway false if the trip is  in the city"); 
     in.nextBoolean(); 
     System.out.println("Please enter the Miles to be traveled"); 
     miles = in.nextInt(); 
     System.out.println("Please enter the price per gallon of gas"); 
     price = in.nextDouble(); 

     totalcost = miles * price/mpg; 
     System.out.println("Your name is " + firstname); 
     System.out.println("Your MPG is " + mpg); 
     System.out.println("Your miles to be traveled is " + miles); 
     System.out.println("Your price per gallon of gas is " + price); 
     System.out.println("Your total cost is " + totalcost); 
    } 
} 
+0

die boolean ab sofort 3 in die mpg hinzufügen, aber ich brauche es 5 hinzufügen, wenn wahr oder 2 subtrahieren, wenn falsche – Pexing

+0

Bitte von mindestens beginnen richtig Formatierung Code. Indentation Angelegenheiten; Dieses Zeug ist wirklich schwer zu lesen. Du willst, dass andere dir helfen; also machen Sie ihre Arbeit so einfach wie möglich. – GhostCat

+0

Nein, es fügt 5 hinzu und subtrahiert dann 2. Genau wie Sie angegeben haben. Die Bedingungen schließen sich nicht gegenseitig aus. Und das Ergebnis ist eine Veränderung von +3. – zapl

Antwort

0
if (highway) { 
    mpg = mpg + 5; 
} 

if (!city) { 
    mpg = mpg - 2; 
} 

sollte

sein, Ihnen eine Autobahn, wenn seine Rechte
if (highway) { 
    mpg = mpg + 5; 
} else { //not highway, so city 
    mpg = mpg - 2; 
} 

jetzt überprüfen. Wenn es true ist, fügt der Code 5 hinzu. Dann überprüfen Sie, ob es sich um eine Stadt handelt. Wenn es false der Code subtrahiert 2.

Sie können aber auch nur die boolean überprüfen, nachdem es eingereicht wurde:

System.out.println("Enter true if trip is on the highway false if the trip is in the city"); 
boolean highway = in.nextBoolean(); 
if (highway) { 
    mpg = mpg + 5; 
} else { //not highway, so city 
    mpg = mpg - 2; 
} 
+0

Sie haben Recht, ich behielt seine Formatierung, aber besser zeigen, wie auch formatieren :) – JohannisK

+0

die endgültige Lösung fügt nur 5 zum mpg, auch wenn sie falsch eingeben – Pexing

+0

Überprüfen Sie die eine unten ... Dies ist nicht der einzige Fehler in Ihrem Code. Mein Punkt war ... wenn Sie überprüfen müssen, ob sich jemand in einer Stadt oder auf einer Autobahn befindet, können Sie dies mit einem booleschen Wert tun, da er zwei Werte hat. Boolescher Highway = wahr; wenn highway == false dann city – JohannisK

2

Machen Sie eine boolean Variable, zum Beispiel boolean inCity;

ändern in.nextBoolean(); zu inCity = in.nextBoolean();

Dann nachdem Sie Ihren Eingabewert haben, können Sie überprüfen, mit den if Aussagen. In Ihrem Code überprüfen Sie die if Anweisung, bevor Sie die Eingabe erhalten.

So würden Sie dies haben:

boolean inCity; 
System.out.println("Are you in the city?(true/false): "); 
inCity = in.nextBoolean(); //Store input in variable 

if (inCity) { //If the condition is a boolean variable, you can type it like this(if (boolean)) 
    mpg -= 2;//Same as mpg = mpg - 2; 
} else { //if inCity is false: 
    mpg += 5; //mpg = mpg + 5; 
} 
+0

Dies ist die richtige Antwort, meine ist unvollständig. Die Position der if-Anweisungen von OP ist ebenfalls falsch. – JohannisK