11837


何秒毎に値をプラスしていき、それを３分間一番大きな値をだす組み合わせを出すアプリケーションをつくってみようとおもい  
まずはじめに ruinというものが２．５秒に一回、８０の値を出すとして４分間でどのくらいの値を出すかということで

[code]

    class act{
        public static void main (String args[]){
            for(int i = 0; i < 240; i++){//4m
                try{
                    Thread.sleep((long) (ActionSkill.ruin[0]*1000));//2.5秒に一回動く
                }catch(InterruptedException e){
                    System.out.println(e);
                }
            }
            double x = 0;
            x = + ActionSkill.ruin[2];
            System.out.println(x);
        }
    
    }
    class ActionSkill{
    
        static double ruin[] ={2.50,   2.50,  80};
                            //{cast, recast, dmg};
    
    }
    
[/code]

とまず初めに書いてみましたが、実行しようとしても上手くいきません。また

[code]

    class ActionSkill{
    
        static double ruin[] ={2.50,   2.50,  80};
                            //{cast, recast, dmg};
    
    }
    
[/code]

といった書き方がまだいまいちよくわからないので、

[code]

    class act{
        public static void main (String args[]){
            double ruin[] ={2.50,   2.50,  80};
            for(int i = 0; i < 240; i++){//4m
                try{
                    Thread.sleep((long) (ruin[0]*1000));//2.5秒に一回動く
                }catch(InterruptedException e){
                    System.out.println(e);
                }
            }
            double x = 0;
            x = + ruin[2];
            System.out.println(x);
        }
    
    }
    
[/code]

と書いてみても上手くいきません。コンパイルエラーはでないのですが上手く実行されません。  
おそらく

[code]

    try{
                    Thread.sleep((long) (ruin[0]*1000));//2.5秒に一回動く
                }catch(InterruptedException e){
                    System.out.println(e);
                }
    
[/code]

この部分に間違いがあるのだと思うのですが、自分だとわかりませんでした。  
いずれは複数の組み合わせを足していきたいと考えているのですが初めから躓いてしまいました。  
よろしくお願い致します。


CC BY-SA 3.0
2015-06-29T04:47:20.377
11835
2015-06-29T05:32:46.647
10197
question
java
毎秒毎の値をだしたいのですが


こういうことがしたいんですかね？

[code]

    public class test {
        public static void main (String args[]){
            double x = 0;
    
            for(int i = 0; i < 240; i++){//4m
                try{
                    Thread.sleep((long) (ActionSkill.ruin[0]*1000));//2.5秒に一回動く
                }catch(InterruptedException e){
                    System.out.println(e);
                }
    
                x += ActionSkill.ruin[2];
                System.out.println(x);
            }
        }
    
    }
    
    class ActionSkill{
        static double ruin[] ={2.50,   2.50,  80}; //{cast, recast, dmg};
    }
    
[/code]

上記を実行すれば2.5秒おきに、80を足してった値を出力します。

* * *

まず、for loop内に`println()`を書いてあげないと、loopが全部終わってから1回だけ出力されるだけです。  
次に、xの宣言時に初期化してますが、loop内に初期化処理を買いちゃうと、loopするたんびに初期化されるので、加算されていきません。毎回80を出したいのが所望の動きなら合ってますが、`x`に`ruin[2]`を入れる必要も無いかなぁ...という気がします。


CC BY-SA 3.0
2015-06-29T05:32:46.647
11837
2015-06-29T05:32:46.647
2383
11835
answer