次の方法はありますか(Java):
for(int i = 0; i < 81 ; i+=20){
//Should loop through 5 times!
}
thymeleafで?
私はこれを試しました:
<option th:each="i : ${#numbers.sequence( 1, 81/20)}">
<p th:text="${ i }"></p> <!-- THIS loops 4 times, instead of 5 -->
</option>
問題は、Javaコードの一部ほど正確ではないことです。これを行う方法は?
これはあなたが使用している数字によるものだと思います。 Javaコードの場合、int i = 0; i <81; i + = 20はi = 0、i = 20、i = 40、i = 60およびi = 80を返します
ただし、次のコードnumbers.sequence(1、81/20)}は、1、4.0、5、1、2、3、4の整数を返します。
最初のループはiに対して5つの結果を返すため、5回実行されます。 2番目は4つの結果のみを返すため、4回実行されます。シーケンスを0から実行して、必要に応じて5つの結果を返すことをお勧めします。
Javaコードで2番目のコードをミラーリングしたい場合は、次のように変更する必要があります:int i = 1; i <4.05; i + = 1
簡単に言うと、異なる番号のループを実行しているため、2番目のステートメントを0から開始するように変更することをお勧めします。
コードにステップを追加するのはとても簡単です。
#{numbers.sequence(0, 81, 20)}
反復するにはiterStatキーワードを使用します。例文字列の配列があり、thymeleafを使用して同じことを繰り返している場合。
<div th:each="str,iterStat : strings">
<span th:text="${str}"/><!--This will print the index value-->
<span th:text="${iterStat.index}"/><!--This will print the Index-->
</div>
1番目の値はカウントの開始、2番目は最大値、3番目は増分値です
${#numbers.sequence( 1, 4, 1)}