私はJavaプログラミングには新しく、ギアとRPMの関係で自動車の速度を計算するプログラムを作成したい。私は最初の範囲外の例外を解決した後にbとcのいずれかをaに掛けることができます
私はさまざまなサイトやトピックを検索しましたが、何かを見つけることができませんでした。多分答えはそこにありましたが、私はそれを見ていませんでした:D。
例えば少しではなく、完全なプログラム:
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");
}
}
私は、私はあなたが私にMPHを表示するには、歯車1またはギア2かなどPRM、パイ、乗じたギア3に入ることができることをしたい尋ね同様。 私はあなたも配列でこれを行うことができると読んでいますが、私はそれが今のところ行こうと思っています。
私があなたを助けてくれることを願っています。
UPDATE:私は今、あなたの提案でそれを少しきれいにするためにそれを望むよう
私はそれが働いてしまいました。今、私は境界外のエラーをどのように回避するかを理解する必要がありますが、どのように(時間を捜して)それを理解し、速度を全体の数値で取得するのは難しいです。 これまでのご協力ありがとうございます。
これは私の現在のプログラムである:私はより多くを検索し、避けるためにOutOfBoundExcenptionためのいくつかのビデオを見て、1よりも私が入力あまりできないので、私は解決策を発見したしている
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
私のプログラムには6以上のものが失敗することはありません。 唯一のことは、whoule sequenzを通過するのではなく、間違ったchoiseを行った後に別の番号を入力するようにユーザーに指示する方法です。
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);
}
}
}
私の最初のアドバイスは、Javaコーディング規則をチェックすることです。http://www.oracle.com/technetwork/java/codeconventions-135099.htmlあなたのコードでは、小文字で始まる変数を設定し、次にcamelCaseスタイルを採用する必要があります。 –
比率に3つの異なる変数を使用する代わりに、* array *に配置します。次に、ユーザーは「1」、「2」または「3」を選択でき、その値(マイナス1)を配列のインデックスとして使用して比率を得ることができます。 –
その配列を使用すると、単純にanArray [] * RPMを掛けることはできますか、それとももっと追加する必要がありますか? – Marvin