質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

3回答

937閲覧

java 初期化したのにされてないというエラーが出る

rink

総合スコア80

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2018/10/15 02:29

記載したプログラムで、それぞれ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; }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

madoka9393

2018/10/15 02:37 編集

コードは```で囲ってください。(「<code>」ボタン(コードの挿入)を押下することでも頭とおしりの「```」が挿入されます) 該当行がどこかコメント(//←X行目みたいな)で示してあげると、更にわかりやすくなるかと思います。
guest

回答3

0

定数で初期化するなら、宣言時にしてしまいましょう。

java

1double x = 0, y = 0, ...

投稿2018/10/15 02:38

swordone

総合スコア20651

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rink

2018/10/15 02:51

素早い回答をありがとうございます!
guest

0

メッセージの通り初期化されていないことが問題なので、初期化すればよいです。

投稿2018/10/15 02:34

dice142

総合スコア5158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

dice142

2018/10/15 02:35

解決済みになってた。。。
rink

2018/10/15 02:35

すみません… ありがとうございます!
guest

0

ベストアンサー

初期化してください。
質問文に記載されているx_fuel,x_powerが宣言のみで初期化が行われていません。

投稿2018/10/15 02:33

terrace

総合スコア249

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

rink

2018/10/15 02:35

あああ、初期化と宣言を頭の中で混ぜてました… ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問