0
int a=25: 
for (double i=1;i<=a;i++) 
{
    int b=5*i; 
    boolean value= b==a; 
    System.out.println(value);
 }

このメソッドは、i=5 の場合は true ですが、それ以外の場合は false です。したがって、値は i=5 で true になる可能性がありますが、私のプログラムは次のように出力します。PS: false または false または TRUE または false = True であることは知っていますが、for ループでどのように使用できますか?

4

4 に答える 4

4

もしかしてこれ?

int a=25; 
for (double i=1;i<=a;i++) { 
    int b = 5 * (int)i;  // you must cast "i" in order for this to compile 
    boolean value = b == a;  // you probably wanted "b == a" not "b == i" 
    if (value)
        System.out.println("true");
}

つまり、ある場合に"true"のみ印刷します。valuetrue


valueになったときにループを停止するには、次のステートメントtrueを使用できます。break

int a=25; 
for (double i=1;i<=a;i++) { 
    int b = 5 * (int)i;
    boolean value = b == a; 
    if (value) {
        System.out.println("true");
        break;
    }
}
于 2012-10-10T00:21:54.570 に答える
1

このような:

int a=25,b: 
boolean value;
for (double i=1;i<=a;i++) { 
    b=5*i; 
    value = (b==i); 
    if (value) {
        System.out.println(value);
    }
}

また、変数は反復ごとに再宣言されるため、ループ本体内で変数を宣言することを決して気にしないでください。これは悪い習慣です。

編集: LoL、このコードは常に false を出力します。true を出力することはできません。

 b=5*i;

5*i が i と等しくなることはありません

編集^ 2:

CodeGuru が提案したように、a==i を使用すると、true が 1 回だけ出力されます。

int a=25,b;
boolean value;
for (double i=1;i<=a;i++)     {
    b=5*(int)i; 
    value= i==a; 
    if (value) {
        System.out.println(value);
    }
}
于 2012-10-10T00:23:22.337 に答える
0

これを行う 1 つの方法は、数値のリストを追加することに似ています。これまでの結果を保持する変数であるアキュムレータが必要です。ループの前にこれを宣言します。

boolean value = false;

ループ内で、次の|=演算子を使用します。

value |= (b == i);

ただし、これは醜い解決策のようです。値を見つけたら、そのtrue値をどうしますか?

于 2012-10-10T00:23:26.260 に答える