whileループの式では、変数を初期化してからそれを式の一部として使用できますか?while式の変数を初期化する - ステートメントではない
それはおそらく、コードで簡単です:ちょうど、以下に別のメソッドを追加し、そう持っていることが可能であろう
while (int a = someMethod(), a<b)
:
private boolean whileLoopTest() {
int a = someMethod();
return a<b;
}
public void originalMethod() {
while (whileLoopTest()) {
//...
が、これはニートいないようです。
私もそれはいくつかの変数と比較されて、そして限り、読めなく混乱になる場合は、直接、私の変数にする方法を比較したくない EDIT。私が何をしたいのより良い例は次のようになります。
while (int a = SomeClass.someStaticMethod(), -1<a && a<b)
それは私の場合には真実ではないですが、someStaticMethod()
を返すために長い時間がかかった場合、これは等しく有効疑問だろう - 私は一度だけ、それを呼び出すようにしたいと思います。 私はStackOverflowをかなり新しくしているので、これが適用される他の状況を与えるのが私のやり方であるかどうかはわかりません。
for(int a = someMethod(); a
あなたがしている場合: while(a
@KerrekSB 'someMethod()'が最初に 'b'より小さい値を返した場合(ForUpadate式がないため)、無限にループします。 'for(int a = someMethod(); a Jeffrey