記載したプログラムで、それぞれ71,80,84,101行目のx_fuel,x_power,x_power,x_fuelが初期化されていない可能性があるというエラーが出てしまいます。どうすればよいか教えてください。よろしくお願いします。
import java.util.Scanner;
class LaunchAndLandWithLog4{
public static void main(String args[]){
Scanner stdIn=new Scanner(System.in);
double x, y, x_speed, y_speed, x_initial_speed, x_wind_speed1;
double y_power,y_fuel,y_braking_point;
double y_brakepower,y_brakefuel;
double x_lounchpower, y_lounchpower, y_lounchfuel, y_releasepoint;
double r;
double g;
double x_target;
double x_power;
double x_fuel;
int c;
g = -9.80665; x = 0; y = 0; x_initial_speed = 0; x_wind_speed1 = 200; y_brakepower = 50; y_lounchpower = 25; x_lounchpower = 4; y_brakefuel = 200; y_lounchfuel = 300; y_releasepoint = 40000; y_power = 50; y_fuel = 200; System.out.print("x方向の目標を指定してください。:"); x_target=stdIn.nextDouble(); y_braking_point = 20000; x_speed = x_initial_speed; y_speed = 0; r = 100000; c = 0; while( y >= 0 ) { y_speed += g/r; if( y_lounchfuel > 0 ) { /* use booster to lounch */ x_speed += x_lounchpower/r; y_speed += y_lounchpower/r; y_lounchfuel -= 1.0/r; if( y > y_releasepoint ) { y_lounchfuel = 0; /* released */ } }else if( y_brakefuel > 0 ) { /* use brake thruster */ if( y < y_braking_point && y_speed < -2.0 ) { y_speed += y_brakepower/r; y_brakefuel -= 1.0/r; } } if( y > 8000 ) { if( x_speed < x_initial_speed + x_wind_speed1 ) { x_speed += 1.4/r; } else if ( x_speed > x_initial_speed + x_wind_speed1 ) { x_speed -= 1.4/r; } } else { x_speed = x_initial_speed; } if( x_fuel > 0 ) { /* estimate where it is going to fall */ double est_x; est_x = x + (y /(-1* y_speed))*x_speed; /* use thruster */ if( est_x > x_target + 10 ) { x_speed -= x_power/r; x_fuel -= 0.000001; } else if ( est_x < x_target - 10 ) { x_speed += x_power/100000; x_fuel -= 0.000001; } } x += x_speed/r; y += y_speed/r; c++; if( c >= r ) { System.out.print("" + x + "\t" + y + "\n"); c = 0; } } System.out.print("" + x + "\t" + y + "\n"); System.out.print("estimated distance = "+x+"\n"); System.out.print("landing y speed = "+ y_speed + "\n"); System.out.print("rest brakefuel = "+ y_brakefuel + "\n"); System.out.print("rest fuel = "+ x_fuel + "\n"); return; }
}
回答3件
あなたの回答
tips
プレビュー