- ベストアンサー
自分で組んでわからないです・・・
akito0417の回答
- akito0417
- ベストアンサー率20% (55/266)
>jの初期値を0してiの初期値も0にしているのになんで内側ループも回るかがわからないです。 何故ですか? 毎回内側のループに入るたびにjを0で初期化しているからです。 i=0の場合(1回目) jを0で初期化 j = iなので、System.outはしない 外側のループに戻って、 1=1の場合(2回目) jを0で初期化 j(0) < i(1)なので、System.outをする(0が出力される) j(1)=i(1)なので、System.outはしない 外側のループに戻って、 i=2の場合 jを0で初期化 0 < 2なので、System.outをする(0が出力される) 1 < 2なので、System.outをする(1が出力される) 2 = 2なので、System.outをしない 以下省略 とまぁ、こんな感じのプログラムになっているからです。 どうしたいのかわかりませんが、jを毎回初期化したくないなら、forで初期化しないことです。
関連するQ&A
- forループの中での初期化
class Foo{ public static void main(String args[]){ int x=10; for(int i=0;i<5;i++){ System.out.print(x+i); } System.out.print("\n"+i); } } このプログラムはコンパイルエラーが出ます。 iがforループの中で宣言されていてその外では無効だからです。 そこで class Foo{ public static void main(String args[]){ int x=10; int i; for(i=0;i<5;i++){ System.out.print(x+i); } System.out.print("\n i="+i); } } のようにしてみました。 i=5と出ました。 ふと、iは確かに宣言されているけど、初期化はforの中でしかされていないのになぜコンパイルエラーにならなかったんだろう??、と思ってしまいました。 おかしくないでしょうか?
- ベストアンサー
- Java
- java ネストしたfor文について
***** **** *** ** * 上のように*が減るようにしたいのですが下のソースではどこが悪いか教えてください class TestGoo{ public static void main(String args[]){ for(int i = 5; i>=1; i--){ for(int j = 5;j>=1; j--){ System.out.print('*'); } System.out.println(); } } }
- 締切済み
- Java
- for文の実行結果について
public class Trace3 { public static void main(String[] args) { for (int i = 1; i < 4; i++) { for (int j = 1; j <= i; j++) { System.out.print(" " + (i * j)); } System.out.println(); } } } 実行結果は 1 2 4 3 6 9 になります。 i < 4でiは4より小さいで123は解るのですが、 j <= iでjはiより小さくjを含むで何故469になるのですか?
- ベストアンサー
- Java
- javaのプログラムについて
java始めたばかりの者です。 class sample1 { public static void main(String[] args) { for(int i=1; i<=5; i++){ for(int j=0; j<i; j++){ System.out.println("*"); } System.out.println("\n"); } } } これを実行すると * * * * * * * * * * * * * * * こうなってしまい * ** *** **** ***** このようにするにはどうしたらいいのでしょうか??
- ベストアンサー
- Java
- Java初歩。ループ問1~6の内1・2
コンパイルの環境はあります。 『問題は、全て、 「forループ」を使って記述しなければなりません。 そして、 ループは、「forループのみ」と、限定されています。 (1)~(2)は、他にどんなやりかたがあるのか興味がありまして、質問させて頂きました。 (3)からは、ずっと試しているのですが、全くできません… (1) 100、50、200、150、300を管理している配列を作成し、その合計を実行結果のように 出力したいです。どう組めばよいのでしょうか? (1)の実行結果 800 (2) 100、50、200、150、300を管理している配列を作成し、その平均値を 実行結果のように出力する為にはどのようにくんだらよいのでしょうか?。 (2)実行結果 160 例えば、(1)はこんな感じでしょうか? class exercise_4_1 { public static void main(String args[]){ int a[] = new int[5]; a[0] = 100; a[1] = 50; a[2] = 200; a[3] = 150; a[4] = 300; int z = 0; for(int i = 0;i < args[0].length(); i++){ z += a[i]; } System.out.println(z); } (1)~(6)問目までありますので、よろしくお願いします。
- 締切済み
- Java
- java九九表示
package kuku; public class Kuku { public static void main(String[] args) { // TODO 自動生成されたメソッド・スタブ // 配列の宣言をする。 int[][] x = new int[9][9]; // 九九の結果を配列に保存する。 for (int i = 0; i < 9; i++) { for (int j = 0; j < 9; j++) { x[i][j] = (i + 1) * (j + 1); } } // 九九の結果を表示する。 for (int i1 = 0; i1 < 9; i1++) { for (int j1 = 0; j1 < 9; j1++) { System.out.print(String.format("x" + args, x)); } // 改行する。 System.out.println(); } } } _________________________________ 九九の表示ができません。 String.formatも使いたいのですが、使い方がわかりません。 String.formatも使って九九を表示させるにはどうしたらいいのか教えてください。 お願いいたします。
- ベストアンサー
- その他(プログラミング・開発)
- javaの条件分岐でコンソールにうまく表示できません(TmT)
eclipse3.4.1を使用して、Javaで下記のようなコードを書いたのですが、望んだ結果が得られません。 public class 条件分岐 { public static void main(String[] args){ for (int i = 1; i < 6; i++){ for (int j = 0; j < i; j++){ System.out.print("☆"); } System.out.println(); } } } そして、コンソールには、 ☆ ☆☆ ☆☆☆ ☆☆☆☆ ☆☆☆☆☆ と、階段状に表示されます。 この結果を ☆ ☆☆ ☆☆☆ ☆☆☆☆ ☆☆☆☆☆ と、このようにピラミッド上に表示したいのですが、 どうすればよいのか分かりません。 どなたか、ご指導お願いいたします。
- ベストアンサー
- Java
- ループの回数の問題についてです。
SUN教科書 javaアソシエイツP102についてです。 Helloが何回表示されるかという問題です。 i=1 j=1の時、continue文によりouterへ移動するという 所までは理解出来ます。 分からないのはその後、解説によるとiが2ということです。 そして内側のforループは0から2の間、実行されるというのです。 iが2になるなら、内ループに入った時jも 2になるのではないのでしょうか。 よろしくお願い致します。 class LoopSample{ public static void main(String[] args){ outer: for(int i=0; i<5; i++){ for(int j=0; j<3; j++){ if(i==1 && j==1){ continue outer; } System.out.println("Hello"); } if(i==1 || i==2){ break; } } } }
- ベストアンサー
- Java
- Javaの初歩的なプログラムについて
public class ForInFor{ public static void main(String[] args){ for(int i=1; i<=9; i++){ String a = ""; for(int j=1; j<=9; j++){ a += i * j + " "; } System.out.println(a); } } } を実行すると九九の表のようになりました。 println(a)の中のaはjの方のforの繰り返しが終わったら代入するものだと思っていましたので 戸惑っています。 実際にはどういう流れで九九の表ができるのでしょうか?
- ベストアンサー
- その他(ソフトウェア)