- 締切済み
Javaの多重for文内における変数の崩壊?(再)
すみませんでした! Javaファイルがアップロードできなかったため、 自分のサイトにアップロードしました お手数ですがそちらからお願いします… プログラミング初心者です 現在Javaを本を使って勉強しています 少しAWTに入った程度です (1) 乱数を4つ作る (2) 4つの数字を四則演算を用いて10とする (3) 10となったら計算をやめて計算式を表示する という切符でやるような遊びを 自動化するプログラムを作成しました (計算式は「+,-,*,/」をcharで表示するようにしています) 10となる結果を探すために、for文を7重にして 配列とswitchを組み合わせて完成させたつもりなのですが… ほとんどの結果は問題なく表示されるのですが 時々与えられた4つの数字が変わってしまったり、 そもそも計算式では10にならなかったりといった結果が出ることがあります 例えば「5,9,6,7」が与えられたときに、 「5*2*5*5」という結果が表示されます 言葉が悪いのですが、どなたかご教授お願いします 個人的には、「変数の崩壊」という言葉しか思いつきませんが このようなことをなんと言うかご存知の方はいらっしゃいますか? 環境は OS:WindowsXP(32bit) SP3 HomeEdition 開発環境:Eclipse3.5 JavaSE1.6 文字数制限を越えてしまうかもしれないので Javaファイルとしてアップロードします http://netbanzai.web.fc2.com/onegai.html
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kmee
- ベストアンサー率55% (1857/3366)
これ、num[0] ◎num[1]○ num[2]●,num[3] (◎○●は任意の四則演算子)の形式の計算しかしていません。 なのに、答えは result[0]=num[i]; result[1]=num[k]; result[2]=num[m]; result[3]=num[o]; となっています。 とりあえず、一見して気付いた点。
お礼
ど、どうやら それ以前のバグもあったようで、無事そこも修正し、正常に動作するようになりました ありがとうございました ですが、なぜこのようなことがおこるのでしょうか?
補足
回答ありがとうございます 計算式の、数字については計算が10とわかった時点で代入するようにしてたのですが 四則についてはもう一度switchを書くのが面倒だったので、10とならない場合でも毎回「resultShisoku」に代入していました もしやと思い、面倒でも書いてみたのですが、今度はうまくいきました! 糸口をありがとうございました