1

2 つの変数に基づいて結果を出力しようとしています。私は8要素の長さの配列を持っています...

  • その配列のいずれかの要素が 40 未満の場合、結果をより小さくしたいと考えています。残りの条件はスキップできます。
  • すべての要素が 40 を超えている場合はa、個別に計算される の値のチェックを開始します。a が特定の値の間にある場合、結果が出力されます。

複数のループから抜け出そうとしましたが、プログラムを実行すると、入力に応じて「Loser」と「Decent」が一緒に出力されることがあります。

  outerloop:
    for (int i = 0; i < array.length; i++)
    {
        if (module[i] < 40 ) 
        {
            System.out.println("Loser");
        } 
        else 
        {
                if (a >= 0 && a < 40) 
                {
                System.out.println("Loser");
                } 
                else if (a >= 40 && a < 60) 
                {
                System.out.println("Decent");
                } 
                else if (a >= 60) 
                {
                System.out.println("Leet");
                }

        }
        break outerloop;

    }
4

3 に答える 3

0

制御フローにラベルを使用しないでください。代わりに、機能を別のメソッドに入れます。

Java は、 を使用してプログラム内のさまざまなポイントに移動する Fortran や Basic のように使用することを意図したものではありません。プログラム通常goto、単一のスコープで記述されます。このような:

function(){

     section1: if(condition) goto section2

     section2: if(condition) goto sectionN
     ....
     sectionN: if(condition) goto section1      
}

Javaは通常、次のように編成されています

java.exe:Main{

    Class(){
         classRelatedMethod(){
            Class(){ ... // recursive definition }
         }
    }
}

これにより、それぞれが相互classに結合された再利用可能な個別の機能を定義できます。そうでない場合は、新しいclassを定義する必要があります。他の多くの言語 (Fortran や BASIC を含む) はこれを実現できますが、Java はこれを念頭に置いてゼロから設計されました (プラットフォームに依存しない言語でもありますが、まったく同じではありません)。

これらはすべて非常に学術的であり、Google で簡単に見つけることができます。

于 2013-11-08T13:17:53.740 に答える
0

ここでかなりの問題があります。グループとして「スコア付け」したい値の配列です。

いずれかの値が 40 未満の場合、検索を停止して「敗者」を出力します。

現在の値が >= 40 の場合、次の値は 40 未満になる可能性があるため、引き続き調べる必要があります。

ただし、配列のどこかに「leet」スコアがあるかどうかも知りたいと思います。

そう:

boolean loser = false, leet = false;
for( int i = 0; i < array.length; ++i ) {
    if( array[i] < 40 ) {
        loser = true;
        break;
    }
    // if it's not < 40, it must be more
    // now check if it qualifies as leet
    if( array[i] > 60 ) {
        leet = true;
    }
}
if( loser ) {
    print loser
} else if( leet ) {
    print leet
} else {
    print decent
}
于 2013-11-08T13:29:04.367 に答える