2

私は宿題の課題で、C#のループをFortran95に変換するという任務を負っています。

outerLoop:
  for(row = 0; row < numRows; rows++){
    for(col = 0; col < numCols; col++){
      if(mat[row][col] == 0)
        continue outerLoop;
      sum += mat[row][col];
    }
  }

ご覧のとおり、これはJavaおよびPerlで使用されるexitステートメントラベル仕様に似ています。これは、私の理解では、単一のループではなく、ネストされたループまたは' if 'ステートメントを持つループから抜け出すために使用されます。 /声明。私はまだJavaのこの機能に慣れていないので、他の場所、特にC#とFortran95に存在するかどうかはわかりません。

Googleで調べましたが、何も見つかりませんでした。私はグーグルで使用する検索用語を作成するのに苦労しているので、それも考慮に入れます。

注意:私は配布物の答えを探していません。私は自分で答えを見つける場所を探しています。

この投稿を読むために時間を割いていただきありがとうございます。

4

2 に答える 2

3

Fortran 95でのループ制御構造の例については、前のFortranの質問のコード例を参照してください。このコードには、「cycle」と「exit」の使用例があります。Fortran90を使用して入力ファイルのコメント行を正しく読み取る

于 2012-04-21T21:04:55.713 に答える
1

このようなbreak x機能はC#ではサポートされていないと思います。フラグを使用して、ネストされたループから手動で抜け出す必要があります。

bool stop = false;
for (row = 0; row < numRows; rows++)
{
    for (col = 0; col < numCols; col++)
    {
        if (mat[row][col] == 0)
        {
            stop = true;
            break;
        }

        sum += mat[row][col];
    }

    if (stop)
        break;
}

より単純な代替案には、gotoステートメント(広く眉をひそめている)が含まれます。ループを専用のメソッド内にカプセル化します。この場合、return反復を停止したいときに実行できます。

于 2012-04-21T21:06:24.913 に答える