文のネスト ノウハウ(Tips)  

こんにちは ゲスト さん | ログイン | 新規登録 | ヘルプ | okyuu.com

okyuu.com / ノウハウ / プログラミング / 開発言語 / Java / 文のネスト

ノウハウ

Feed

(4人の評価)

  • natoi
  • natoi
  • 投稿時間:2008/10/20 23:38
今回はfor文をネストします。
本文
何時も、超初心者コードばかりを書いて
説明とか余り無くてすみません><
コピペする ブログに貼る
class Sample3
{
	public static void main(String args[])
	{
		for(int i=0; i<5; i++){
			for(int j=0; j<3; j++){
				System.out.println("iは" + i + ":jは" + j);
			}
		}
	}
}
このコードは、変数1をインクリメントするfor文の中に、 変数jをインクリメントするfor文を埋め込んでます。 こんな感じで文をネストすると結構複雑な処理も書けそうですね。

  • コメント数 (4)
  • クリップ数 (1)
  • アクセス数 (991)

  • コメント

  • No_photo_thumbnail
  • moppo 投稿時間:2008/10/21 00:39
トリッキーですがforを使わないでやってみました
コピペする ブログに貼る
class Sample3
{
        private static final int I_END = 5;
        private static final int J_END = 3;
        public static void main(String args[]){
                function(0,0);
        }
        private static void function(int i , int j){
                System.out.println("iは" + i + ":jは" + j);
                if( j == J_END - 1 && i == I_END - 1){
                        return;
                }
                if( j == J_END - 1 && i != I_END - 1){
                        function(i + 1 , 0 );
                }else{
                        function(i     ,j+1);
                }
        }
}
>>natoiさん こういうの好きです 気にせずじゃんじゃん投稿してください!
2点(2人の評価)

 ちょっと、関数型言語っぽくできるかな、とか考えて書き直してみました。
コピペする ブログに貼る
class Sample3
{
    public static void main(String args[])
    {
        intI(0);
    }

    private static void intI( int i)
    {
        if(i<3)
        {
            intJ(i,0);
        }
    }

    private static void intJ( int i, int j)
    {
        if(j<5)
        {
            System.out.println("iは" + i + ":jは" + j);
            intJ(i,j+1);
        }else
        {
            intI(i+1);
        }
    }
}
 いかがでしょうか?
1点(1人の評価)

  • No_photo_thumbnail
  • moppo 投稿時間:2008/10/21 13:36
>> fujiyoshisyoutaさん
カッコいいですねstar
しかし 再帰て難しいですよね
もっとエレガントに書きたい
0点(0人の評価)

>moppoさん
 ありがとうございますsmile



 しかし、私の書いたコードは、かなりスタックが深くなってますので、実行効率は相当悪いはずです。
 じっさい、上記コードをちょっといじくって関数呼び出しの数を計算してみたところ、Main()を含めて23と出ました。
0点(0人の評価)

カタログ

Eclipse
NetBeans
JBuilder
JDeveloper
Xcode
MonoDevelop
IntelliJ IDEA
JCODER
JCreator
KDevelop
Greenfoot
Qt Creator
Rational
Servoy
Sun Studio
Geany
DrJava
Codelite
BlueJ
BEA Workshop for WebLogic

無料会員登録

カテゴリ

特集

"シャイモード"機能を活用しよう! "シャイモード"機能を活用しよう!
こんな質問してもいいのかな?そんなときは"シャイモード"で投稿!
RX-7とサーバ運用の意外な共通点 並河祐貴さん RX-7とサーバ運用の意外な共通点 並河祐貴さん
Amazon EC2を巧みに使いこなすTIS/SonicGardenの並河さん。「腕一本で食べていきたい」とITエンジニアを目指した。
「ブラックボックスは不安でしょ」 ひろせまさあきさん 「ブラックボックスは不安でしょ」 ひろせまさあきさん
エンジニアが楽しくて仕方がない。オープンソースを組み合わせてシステムを作り上げるのが彼の矜持のようだ。
Perlの地位向上を胸に 牧大輔さん Perlの地位向上を胸に 牧大輔さん
endeworksの牧大輔さんは社団法人JPAを立ち上げ、Perlの企業利用を促進したいという。
偶然からCTOへ ライブドアCTO池邉智洋さん 偶然からCTOへ ライブドアCTO池邉智洋さん
池邉智洋さんはライブドアCTOの技術メンバーを先頭で率いる。「まずはやって見せることも大事」と語る。

ノウハウランキング