- ベストアンサー
エラーが出て困っています。
先ほど質問したものです。 今度のエラーはb,tが初期化されていないとのことです。 import java.io.*; class kadai3{ public static void main (String args[])throws IOException{ int k; double cos,sin,a,b,t,c; String a2,b2,t2; BufferedReader a1 =new BufferedReader(new InputStreamReader(System.in)); BufferedReader b1 =new BufferedReader(new InputStreamReader(System.in)); BufferedReader t1 =new BufferedReader(new InputStreamReader(System.in)); System.out.println("y=ax+bをt*n度回転させたときの直線を求めましょう。"); System.out.println("傾きaの値を入力してください。"); a2=a1.readLine(); a=Double.parseDouble(a2); System.out.println("y切片の値bを入力してください。"); a2=a1.readLine(); a=Double.parseDouble(a2); System.out.println("回転させる角度t度を入力してください。"); t2=t1.readLine(); a=Double.parseDouble(t2); for(k=0; k<=50; k++){ sin=Math.sin(k*t*3.141592653582/180.0); cos=Math.cos(k*t*3.141592653582/180.0); a=(sin+a*cos)/(cos-a*sin); b=b*sin*(sin+a*cos)/(cos-a*sin)+b*cos; c=cos-a*sin; if (c<=0.00001){ System.out.println("傾きが大きすぎます。プログラムを終了してください。"); } else if (c>0.00001){ a=a; b=b; t=t; } System.out.println("角度は"); System.out.println(k*t); System.out.println("直線はy="); System.out.println(a); System.out.println("x+"); System.out.println(b); } } } このような質問をするのは失礼だと思うのですが、エラーが出て困っています。 どこが行けないのでしょう? 回答お願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
エラーではなく、警告だったりしませんか? まぁそれは大したことではりませんが・・・ どこがいけないかというと エラー内容の通りです。 各変数が初期化されていない可能性があるからです。 bについて for文の中で始めて値が設定され、 最後にその値を出力している。 →for文は数値によってはその中が実行されない場合があります。 コンパイラはfor文の値をチェックしている訳ではないですが あくまで、初期化されずに最終行で出力してしまう可能性がある ということでエラーを出していると思われます。 もう一つのtについても同様です。 if文の中も実行されない可能性があるからです。 ※else{}内であれば大丈夫かも で、解決方法ですが、最初に0とかを設定して「初期化」しておいてあげるだけです。
その他の回答 (2)
- keiichi123
- ベストアンサー率25% (8/31)
double cos,sin,a,b,t,c; a=0; b=0; c=0; t=0; こんな感じで、今doubleで宣言されているa,b,c,tに0を代入してみたら動いたよ。一度これを入れてコンパイルだけでも通してから、出力してみるといいと思うよ。
お礼
おかげさまで完成しました。ありがとうございました。
補足
皆さん本当にありがとうございました。 本当は皆さんにお礼のポイントを上げたいのですがなかなか優劣をつけるのが難しいので回答順にさせていただきます。 No.3の方には非常に申し訳ないのですが…
- fortranxp
- ベストアンサー率26% (181/684)
>double cos,sin,a,b,t,c; double cos,sin,a,b=0.0,t=0.0,c; 正しくは全ての変数に初期値を設定したほうが よいかもしれません。
お礼
おかげさまでjavaファイルが完成しました。ありがとうございました。
お礼
おかげさまでjavaファイルが完成しました。ありがとうございました。