2016-05-16 13 views
0

である整数値に等しい場合、私はグルーヴィーで、比較的新しいですので、私はこの権利ループで少なくとも数を見つけ、確認することがグルーヴィー

をやっている場合、私はで私のクエリを実行していることを確認していませんその最小値が12と等しい場合は最小値を見つけるためにループを実行してからそれを印刷してください。

connection.eachRow(query) { 

    def errorstate = false 
    if (y < x && y !=0) 
    { 
    errorstate = true 
    x = y ---> if y is less than x then set x = value of y 
    } 
    /* if y is greater then the value of x will not change */ 
if (x == 12) 
    printf ("%-30s\t%-20s\t\n" , name,y) 

    } 

ありがとうございます!

+0

あなたの質問は何ですか? – zchrykng

+0

私は上記のスクリプト(元のスクリプトの一部)を実行しようとしていますが、正しく動作していないようです。それは実行されていますが、x = 2/3の最終値を減らしても出力はありませんか?スクリプトが正しいかどうかわからない!! – somi

答えて

0

はこれを試してみてください:

connection.eachRow(query) { 

    def errorstate = false 
    if (y != 0) 
    { 
     errorstate = y < x 
     x = Math.min(x, y) 
    } 

} 

/* if y is greater then the value of x will not change */ 
if (x == 12) 
    printf "%-30s\t%-20s\t\n" , name, y 

これはeachRowは、それが戻る前に、各行に与えられていますクロージャを呼ぶことを前提としています。私はあなたがこれを行うために使っているライブラリを投稿していないので、その場合はわかりません。

eachRowは別のスレッドでクロージャを実行し、ループを実行する直前に戻ることがあります。その場合は、eachRowのドキュメントを参照してください。

+0

ありがとうございました!これはうまくいった。 – somi

+0

もし私もyに値0を使用すると、クエリは0(これはプロセスが1時間未満で実行されたことを意味する)でいくつかの値を返すので、私はif(y> = 0)を試しましたが、たとえ0があったとしても。 – somi

+0

あなたの質問は私には意味がありません。私は、あなたが手助けするために達成しようとしていることの文脈が必要です。おそらく、あなたがやっていること、正確に動かないこと、これまでに試したことの詳細について新しい質問をするでしょう... – Renato

関連する問題