Ich bin neu in Java-Programmierung und ich möchte ein Programm zur Berechnung der Geschwindigkeit eines Autos in Bezug auf den Gang und die RPM machen .Wie kann ich a mit entweder b oder c multiplizieren, nachdem ich meine anfängliche out-of-bounds Ausnahme
Ich suchte verschiedene Websites oder Themen, konnte aber nichts finden. Vielleicht war die Antwort da, aber ich habe es nicht gesehen: D.
ein wenig, aber nicht vollständiges Programm zum Beispiel:
import java.util.Scanner;
public class Speed {
public static void main(String[] args) {
double Gear, MPH, RPM
double TireDia = 78;
double Pi = 3.1415;
double RatioGearOne = 3.4;
double RatioGearTwo = 2.5;
double RatioGearThree = 1.6;
Scanner input = new
Scanner (System.in);
System.out.println("What gear is it in?");
Gear = input.nextDouble();
System.out.println("How many RPM are shown?");
RPM = input.nextDouble();
MPH = Gear * RPM * Pi * TireDia * 60/1000000;
System.out.println("The car is going: " + MPH + " MPH");
}
}
Wie ich schon gefragt, ich will, dass Sie Gang 1 oder Gear 2 oder Getriebe 3 multipliziert mit PRM, Pi, usw. eingeben können mir die MPH angezeigt werden . Ich lese, dass Sie dies mit einem Array auch tun können, aber ich möchte es Linie, dass für jetzt, denn ich verstehe es ein bisschen mehr zu der Zeit.
Ich hoffe, Sie können mir helfen.
UPDATE:
Ich habe es funktioniert, wie ich es für jetzt wollen und reinigte ihn ein wenig mit Ihren Vorschlägen. Jetzt muss ich herausfinden, wie ich den "out of bounds" -Fehler umgehen kann, aber ich habe es nicht herausgefunden, wie, (suche jetzt nach Stunden) und bekomme die Geschwindigkeit in einer ganzen Zahl. Danke für die Hilfe bis jetzt.
Dies ist mein aktuelles Programm:
import java.util.Scanner;
public class geschwindigkeitAuto {
public static void main(String[] args) {
double gang, kmh, upm;
Scanner input = new Scanner (System.in);
double[] übersetzungen = {3.7, 1.95, 1.3, 1.03, 0.84, 0.68};
System.out.println("Welcher Gang ist Eingelegt? (wähle 1 bis 6): ");
gang = input.nextInt();
System.out.println("Wieviele Umdrehungen werden angezeigt? (wähle 0-6500): ");
upm = input.nextInt();
kmh = upm/übersetzungen[(int)gang -1]/3.62 * 68 * 3.141 * 60/100000;
System.out.print("Die Geschwindigkeit des Autos beträgt: " + kmh + " kmh");
}
}
UPDATE 2
Ich habe mehr gesucht und sah einige Videos für die OutOfBoundExcenption zu vermeiden, und ich habe eine Lösung gefunden, so dass ich nicht eingegeben weniger als 1 oder mehr als 6 zu meinem Programm, ohne zu versagen. Die einzige Sache ist jetzt, wie man dem Benutzer sagt, eine andere Zahl einzugeben, nachdem er eine falsche Wahl getroffen hat, anstatt die erste Sequenz durchzugehen.
import java.util.Scanner;
public class geschwindigkeitAuto {
public static void main(String[] args) {
double gang, kmh = 0, upm;
Scanner input = new Scanner (System.in);
double[] übersetzungen = {3.7, 1.95, 1.3, 1.03, 0.84, 0.68};
System.out.println("Welcher Gang ist Eingelegt? (wähle Gang 1 bis 6): ");
gang = input.nextInt();
System.out.println("Wieviele Umdrehungen werden angezeigt? (wähle 0-6500): ");
upm = input.nextInt();
try {
kmh = upm/übersetzungen[(int)gang -1]/3.62 * 68 * 3.141 * 60/100000; }
catch(ArrayIndexOutOfBoundsException ex) {
System.out.println("Du hast einen nicht vorhandenen Gang gewählt! "
+ "Es gibt nur 6 Gänge zur Auswahl" + "\n"); }
System.out.println("Die Geschwindigkeit des Autos beträgt: " + kmh + " kmh" + "\n");
System.out.print("Noch eine Berechnung? (J/N) : ");
System.out.printf("\n");
String var= input.next();
if(var.equalsIgnoreCase("J")) {
main(null);
}
}
}
Mein erster Ratschlag wäre, Java Kodierungskonventionen zu überprüfen: http://www.oracle.com/technetwork/java/codeconventions-135099.html.In Ihrem Code sollten Sie die Variablen so einstellen, dass sie mit Kleinbuchstaben beginnen, und dann einen CamelCase-Stil übernehmen. –
Anstatt drei verschiedene Variablen für die Verhältnisse zu verwenden, setzen Sie sie in ein * Array *. Dann kann der Benutzer "1", "2" oder "3" auswählen, und Sie können diesen Wert (minus eins) als Index in das Array verwenden, um das Verhältnis zu erhalten. –
Also, wenn ich dieses Array verwende, kann ich einfach anArray [] * RPM multiplizieren, oder muss ich mehr hinzufügen? – Marvin