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

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

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

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

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

Q&A

3回答

1117閲覧

java 初心者 for文について

akari

総合スコア11

for

for文は、様々なプログラミング言語で使われている制御構造です。for文に定義している条件から外れるまで、for文内の命令文を繰り返し実行します。

Java

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

0グッド

0クリップ

投稿2015/10/08 08:32

編集2015/10/11 09:36

java初心者で困ってます。

Z[]:入力データ
Y[]:出力データ
Number:読み込んだデータの個

Y[]の出力データが必用だからだと思うのはわかるのですが、どうしたら良いのか全く分かりません。
又、式中にY[i-2]等があるので、i=2にしたのですが、あっているのかわかりません。
お願いします。

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

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

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

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

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

swordone

2015/10/08 08:36

どういうプログラムなのでしょうか?それぞれの変数がどのように設定されているのかわからないとちょっとなんとも言えないです.
guest

回答3

0

hiroki8080が書かれていますが乗算の結果が0になるというのは、変数あるいは途中の計算結果が0になっている可能性が高いです。なので、println()など入れて検証してみたらどうでしょう?

投稿2015/10/08 09:05

cateye

総合スコア6851

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

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

0

前提の無い変数があるようなので、以下の通りだと仮定します。

java

1int[] X={1,2,3,4,5} 2int[] Y=new Int[x.length] 3sampleNumber=x.length 4int W=1 5int B=1 6int C=1 7int D=1

その上で以下のようなコードを実行すると、

java

1for(int i=2; i<sampleNumber; i++){ 2 Y[i]=Y[i-2]*D + Y[i-1]*C + (W*W/B)*(X[i-2]+X[i-1]*2+X[i]) 3}

以下のような結果を得られます。

java

1出力状況: Y[]={0,0,0,0,0} 2 3i=2のとき 4Y[2] = 0*1 + 0*1 + (1*1/1)*(1+2*2+3) 5= 8 6出力状況: Y[]={0,0,8,0,0} 7 8i=3のとき 9Y[3] = 0*1 + 8*1 + (1*1/1)*(2+3*2+4) 10= 8+12 = 20 11出力状況: Y[]={0,0,8,20,0} 12 13i=4のとき (これで処理がおしまい) 14Y[4] = 8*1 + 20*1 + (1*1/1)*(3+4*2+5) 15= 8+20+16 = 44 16出力状況: Y[]={0,0,8,20,44}

こういう動作をするコードですが、やりたい事と一致してますか?
コードはコンパイルエラーを起こすようなものではないと思います。
また、処理がゴチャゴチャして動作がわからなくなったら、このように手計算をすると処理の流れを追いやすいのでオススメです。

で、出力のY配列が全部0になる問題ですが、入力される値に0が含まれてればそのようになることもあります。
また、提示されたコードはfor文を中かっこで閉じてないみたいですが、構文は合ってますか?

という感じです。

投稿2015/10/08 09:03

編集2015/10/08 11:03
SKYYFISH

総合スコア654

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

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

0

はじめまして。
まずはデバッグする力をつけたほうが良いと思います。
例えば
「Y[i-2]D+Y[i-1]C:と「((WW)/B)(X[i-2]+X[i-1]*2+X[i])」を別々の変数に入れてみたり、
「 Y[i] =」となっているところを別の配列にいれてみると良いでしょう。
もう少し式を分解していけばなぜ0になるかがわかると思います。

あと、そもそもWやBなどが0になっている可能性もあるのでその辺りも調べたほうが良いかと。

投稿2015/10/08 08:40

hiroki8080

総合スコア254

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問