• 締切済み

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

  • Java
  • 回答数1
  • ありがとう数3

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

これ、num[0] ◎num[1]○ num[2]●,num[3] (◎○●は任意の四則演算子)の形式の計算しかしていません。 なのに、答えは result[0]=num[i]; result[1]=num[k]; result[2]=num[m]; result[3]=num[o]; となっています。 とりあえず、一見して気付いた点。

HisanaEXE
質問者

お礼

ど、どうやら それ以前のバグもあったようで、無事そこも修正し、正常に動作するようになりました ありがとうございました ですが、なぜこのようなことがおこるのでしょうか?

HisanaEXE
質問者

補足

回答ありがとうございます 計算式の、数字については計算が10とわかった時点で代入するようにしてたのですが 四則についてはもう一度switchを書くのが面倒だったので、10とならない場合でも毎回「resultShisoku」に代入していました もしやと思い、面倒でも書いてみたのですが、今度はうまくいきました! 糸口をありがとうございました

関連するQ&A

  • Javaアプレットについての質問です

    Javaアプレット関係の質問です。 Eclipseで「Sample_01.java」ファイルを作成します。→ コマンドプロンプトでコンパイルします。→ 作成した「Sample_01.class」ファイルをデスクトップに移動します→ HTMLファイルを開きます。 …この手順だと問題なくアプレットを表示できるのですが、 Eclipseで「Sample_01.java」ファイルを作成します。→ 「保管」します。→ ナビゲータービューから「Sample_01.class」ファイルを取りだします→ デスクトップに移動します。→ HTMLファイルを開きます。 …この手順だとなぜか×マークが表示されエラーになります。 繰り返しになりますが、どちらのファイルも名前・中身は全く同じものとなっています。コンパイルの方法が違うだけです。 なぜEclipseで自動作成された方のclassファイルだけエラー?が出たのでしょうか?エラーが出ない対策とかはありませんかね? Javaアプレットに詳しい方いましたら教えてください。 //一応ソース乗せておきます import java.applet.Applet; import java.awt.*; import java.awt.event.*; import java.util.*; public class Sample_01 extends Applet{ private static final long serialVersionUID = 1L; public void init(){ } public void paint(Graphics g){ g.drawRect(200,200,25,30); } }

  • java for文プログラムについて

    java for文プログラムについて javaのfor文のプログラムにて 2つの数値をキーボード入力し入力値を+入力値とやっていきたいプログラムを組みたいのですがどんなプログラミングを行えばいいのでしょうか。 例えば入力が15 もうひとつの入力が20だとすれば15+16+17+18+19+20=105という計算を行いたいです プログラミング環境はeclipseです 分かる方教えてください。

  • Javaでハイパーターミナルみたいなものをを作りたい

    最近javaをはじめたものです。 picで温度を測って定期的に、シリアル通信でパソコンに数字を送り、それをハイパー ターミナルに表示する装置をつくりました。 今度はこれをJAVAで、AWTかSWINGなんかに表示するプログラムをつくりたいん ですが、どのへんを勉強すればいいんでしょうかおしえてください。

    • ベストアンサー
    • Java
  • Javaでウィンドウ作成について

    下記のJavaのプログラムについて質問です。 ウィンドウを表示するプログラムで、本に書いてあるのを参考にしました。 しかしウィンドウを表示されません。 どうしたらウィンドウを表示できるようになりますか?。 ちなみにコメントアウトしている部分を有効にするとウィンドウが表示されます。 開発環境はEclipse3.4で、Eclipse3.4から実行しています。 もう一点、コメントアウトしているsuper()を有効にすると Eclipse3.4から下記のエラーがでます。 本に書いてある通りにしているつもりですが、これについても教えて下さい。 ”コンストラクター呼び出しは、コンストラクター内の最初のステートメントである必要があります” 以上、よろしくお願いします。 ackage test; import java.awt.Frame; public class P155 extends Frame{ public void P155(){ //super(); this.setSize(300,200); this.setVisible(true); } public static void main(String[] args) { new P155(); // Frame f= new Frame(); // f.setSize(300,200); // f.setVisible(true); } }

    • ベストアンサー
    • Java
  • Javaで簡単なピアノ演奏プログラム

    Javaで簡単なピアノを演奏するプログラムを作成しています。 初心者なので、色々経験を積んでいく最中です。 他にも、ブロック崩しも並行で作成中なんですが、Javaでピアノ演奏のアプリケーションも おもしろそうだと思ったので、この期に作ろうと思いました。 それで、フレームの表示(フレームを経由してキーボードの情報を受けてます)と、キーリスナーの 実装、サウンド用のAudioClipの変数も用意しました(多数入れるので、配列の形で用意してます) その後、AudioClipの変数の中に、wavファイルを指定して、ここで一旦実行結果を確認しようと思いコンパイラしたのですが、フレームの表示はOK、キーの入力もOKだったんですが、なぜか音が出なかく、代わりにエラーが出ました。 そのエラーの内容が下記です。 ================================== Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException at Sound.keyPressed(Sound.java:26) at java.awt.Component.processKeyEvent(Component.java:6247) at java.awt.Component.processEvent(Component.java:6066) at java.awt.Container.processEvent(Container.java:2041) at java.awt.Window.processEvent(Window.java:1836) at java.awt.Component.dispatchEventImpl(Component.java:4652) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.ja va:1850) at java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboard FocusManager.java:712) at java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeybo ardFocusManager.java:990) at java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeybo ardFocusManager.java:855) at java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFoc usManager.java:676) at java.awt.Component.dispatchEventImpl(Component.java:4524) at java.awt.Container.dispatchEventImpl(Container.java:2099) at java.awt.Window.dispatchEventImpl(Window.java:2478) at java.awt.Component.dispatchEvent(Component.java:4482) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:644) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:603) at java.awt.EventQueue$1.run(EventQueue.java:601) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo ntrolContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo ntrolContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:617) at java.awt.EventQueue$2.run(EventQueue.java:615) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessCo ntrolContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:614) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThre ad.java:269) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread. java:184) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre ad.java:174) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) ================================== 以上が、出力されたエラーの内容です。 Javaのファイル名は、Mainframe(メインファイル)、Soundファイルです。 今度文化祭の方で出展しようかと思っているんですが、時間が無いためちょっと焦ってます。 恐らく、いくつか必要な情報が抜けてるかと思いますが、指摘を頂ければその都度記載させて頂きます。乱文で申し訳ございませんが、ご教授の方宜しくお願い致します。

    • ベストアンサー
    • Java
  • 会社で、eclipseを使ってjavaのプログラム

    会社で、eclipseを使ってjavaのプログラムを作る仕事をしていて、家でも練習しようと思いました。 eclipseの画面を見ていると、パッケージエクスプローラーに.javaファイルはありますが、.jarファイルがありません。 実行はできているのに、.jarファイルが生成されてないという事があるのでしょうか。 もしくは、表示の設定で、パッケージエクスプローラーにでてないだけでしょう。

    • ベストアンサー
    • Java
  • eclipse java18 日本語文字化け

    java18を使用してeclipse4.24でプログラムを実行すると日本語が文字化けして困っていま。 改善方法が分かりません。 現状までの流れ 1.JAVA18をインストール その後統合開発環境を使用したくeclipse2022-06 (4.24.0)をインストール 2.eclipseを使用しjava勉強の為プログラム作成し実行   この時eclipseの実行結果が表示される画面には日本語が正常に表示された。 3.いくつかプログラムの作成/実行を繰り返していた時、実行されているコンパイラはjava17であることが分かった。 先にjava18をインストールしていた為 java18でコンパイル等していたと思っていた。 4.eclipseにおいてJava18を設定しプログラム作成実行したところ日本語が化けてしまった。 5.web上で検索してeclipse.iniに-Dfile.encoding=UTF-8を追加しても変化なし 6.eclipseにてJREを17に戻して実行すると、日本語表示が正常に戻ります。 eclipseでjava18のJREの登録が間違っているのだと思いますが、現状何をどうしたら良いのか分かりません。 ご存知の方お力添えお願い出来ないでしょうか? ※java18そのもののインストールにミスがあるのかと思い、ウィンドウズのコマンドプロンプトでプログラムをコンパイル/実行をしてみたところ日本語は正常に表示されましたのでjava18のインストールはうまくいっているようです。

    • ベストアンサー
    • Java
  • Javaで色表現10進→16進のクラスメソッドは用意されている?

    Javaで色表現10進→16進のクラスメソッドは用意されている? 環境は以下のとおりです。 Java1.5 Tomcat5.5 eclipse3.3 データベースに 背景色(R):(0~255) 背景色(G):(0~255) 背景色(B):(0~255) が登録されています。(それぞれ別の列です) JSPで背景色表示のためbgcolorで表現したいのですが、 データベースでは16進数表記でないためそのまま使うことができません。 Javaで色表現10進数(255,255,255)→16進数(#FFFFFF)のような クラスメソッドは用意されているのでしょうか? 「java.awt.Color」クラスかなと思いましたが見つかりませんでした。 (探し方が悪いのかもしれませんが…)

    • ベストアンサー
    • Java
  • 複数のjavaのインストールについて

    質問します。 windows2000 sp4 の環境です。 今まで、j2sdk1_4_2_05 と eclipse2.1.3 をインストールしていたのですが、今回 sdk1_5_0 と eclipse3.0.1とを別途インストールしてみました。 システム環境変数は、JAVA_HOME, PATH, CLASSPATH とも、j2sdk1_4_2_05 のままなのですが、 コマンドプロンプトで、 java -version をキーインすると、 java version "1.5.0" と表示されます。 なぜ、1.4.2 ではないのでしょうか?お教えください。

    • ベストアンサー
    • Java
  • 乱数について質問です

    乱数について質問です 抽選の結果の計算なんですが 468 114 805 の3つの自然乱数が、ありそれを合計し3で除算した余り1に1を加算して114に当選となったのですが、 計算の仕方がいまいちわからず困っています。 3つの数字を合計して、1387で3で除算し、462.333・・・という数字になりますが 余り1に1を加算してというところが解りません。 言葉足らずかもしれませんがよろしくお願いします。

専門家に質問してみよう