1

重複の可能性:
Javaにgotoステートメントはありますか?

私のAndroidアプリケーションでは、gotoステートメントを使用してフローを制御しました。しかし、「トークンgotoの構文エラー、スローが予想されます」というエラーが表示されました。これが私のコードです

label:
if(alc)
{
  r_code=st.nextToken();
  AlertDialog.Builder alert=new AlertDialog.Builder(Fetch.this);
  alert.setTitle(count+" records found for "+rytname.getText().toString());
  alert.setMessage("Are you sure want to search for "+r_code+"?");
  alert.setPositiveButton("YES", new DialogInterface.OnClickListener() {

    @Override
    public void onClick(DialogInterface dialog, int which) {
      ff=1;
      alc=false;
    }
  });

  alert.setNegativeButton("NO", new DialogInterface.OnClickListener() {

   @Override
   public void onClick(DialogInterface dialog, int which) {
      // TODO Auto-generated method stub
      ff=0;
   }
  });
  alert.show();
  if (ff==0)
  {
    goto label;
}

私はこのAndroidを初めて使用し、このエラーを回避するのに役立ちます

4

3 に答える 3

3

gotoJavaでは動作しません

Javaキーワードリストでgotoキーワードが指定されていても、未使用としてマークされます。したがって、それは機能しません。gotoキーワードを使用せずにコードを書き直す必要があります。

一般的なヒント:ラベル付きステートメントがあります

ステートメントにはラベルプレフィックスが付いている場合があります。

LabeledStatement:
     Identifier : Statement

LabeledStatementNoShortIf:
     Identifier : StatementNoShortIf

識別子は、すぐに含まれるステートメントのラベルであると宣言されています。

CやC++とは異なり、Javaプログラミング言語にはgotoステートメントがありません。識別子ステートメントのラベルは、ラベル付きステートメント内の任意の場所に表示されるbreak(§14.15)またはcontinue(§14.16)ステートメントで使用されます。

ラベル付きステートメントのラベルのスコープは、すぐに含まれるステートメントです。– JLS(§14.7)

しかし、あなたが本当に望んでいるのは、それを使用せずに、たとえばを使用して構成を書き直すことです。while

while (f == 0) {
     // ...
}
于 2013-01-29T09:43:55.210 に答える
0

それ以外の:

label:
...// the rest of your code
if (ff == 0) 
{
    goto label;
}

これを使って:

do {
...// the rest of your code
while (ff == 0);

次のように変換できればさらに良いです。

while (ff == 0) {
...// the rest of your code
}
于 2013-01-29T09:52:50.047 に答える
-2

goto読みやすさの観点から不明確になるため、コードで使用することはお勧めしません。の代わりに、とgotoを使用できます。の代替はこちらbreakcontinuegoto

于 2013-01-29T09:45:05.550 に答える