3

私は Java を初めて使用しますが、どういうreturn;意味ですか? のようbreakですか?

  public void run() {
            if(imageViewReused(photoToLoad))
                return;
            Bitmap bmp=getBitmap(photoToLoad.url);
            memoryCache.put(photoToLoad.url, bmp);
            if(imageViewReused(photoToLoad))
                return;
            BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad);
            Activity a=(Activity)photoToLoad.imageView.getContext();
            a.runOnUiThread(bd);
        }

2番目imageViewReused(photoToLoad)がtrueを返す場合、BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad)実行されませんよね?

4

7 に答える 7

5

はい、似ていますが違いもあります

  • break- ループを停止して条件を切り替えます。switch 文と loop 文にのみ使用できます
  • return- 関数の実行を終了しますが、このキーワードの下のステートメントは実行されません。任意の機能にのみ使用できます。

void 関数でのキーワードの使用return

returnこのようなvoid関数で使用する場合

void trySomething()
{
  Log.i("Try", "something");

  return;
  Log.e("Try", "something"); 
}

この関数の実行は完了しますが、以下のステートメントは実行されません。

キーワードの使い方break

任意のループ ステートメント

void tryLoop()
{
   while(true)
   {
      Log.d("Loop", "Spamming! Yeah!");
      break;
   }
}

ループは停止し、この関数の残りのステートメントを続行します

スイッチ条件用

void trySwitch()
{ 
   int choice = 1;
   switch(choice)
   {
      case 0:
        Log.d("Choice", "is 0");
        break;
      case 1:
        Log.d("Choice", "is 1");
      case 2:
        Log.d("Choice", "is 2");
   }
}

スイッチ条件での使用breakもループと同じです。を省略するbreakと、切り替え状態が継続されます。

于 2012-12-22T06:32:27.520 に答える
1

うん、あなたは休憩のようにそれを使うことができます。

于 2012-12-22T05:44:35.377 に答える
1

はい、return同じブロックの次の実行を中断します。

これを確認する方法の詳細についてはreturn

于 2012-12-22T05:46:58.513 に答える
1

return呼び出されたときに表示されるメソッドの実行を終了します。void メソッドの場合は、単にメソッド本体を終了します。非 void メソッドの場合、実際には値 (つまり) を返しますreturn X。ただ注意してtry-finallyください:ブロック内にいてもfinallyブロックが実行されるreturnことに注意してくださいtry:

public static void foo() {
    try {
        return;
    } finally {
        System.out.println("foo");
    }
}

// run foo in main
ふー

これは、 についてさらに学習するための良いリファレンスですreturn


のようbreakですか?

両方のステートメントが実行中のプロセスを「終了」するという意味で。returnメソッドをbreak終了し、ループを終了します。それでも、2 つの違いと、それぞれをいつ使用する必要があるかを知ることが重要です。

2 番目が をimageViewReused(photoToLoad)返した場合trueBitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad)実行されませんよね?

正しい - そのステートメントの本体が実行され、その後のステートメントに到達しないreturn場合、メソッドは " "になります。if

于 2012-12-22T10:41:23.563 に答える
0

関数の実行は、return ステートメントになると終了し、呼び出し元のコードに戻ります。あなたの場合、

が true の場合imageViewReused(photoToLoad)、その後のコード ブロックreturnは実行されません。

于 2012-12-22T05:54:24.347 に答える
0

ここで return は関数の最後として機能します。コードを次のように変更することで回避できます。

 public void run() {
        if(!imageViewReused(photoToLoad))
        {
          Bitmap bmp=getBitmap(photoToLoad.url);
          memoryCache.put(photoToLoad.url, bmp);
          if(!imageViewReused(photoToLoad))
          {
            BitmapDisplayer bd=new BitmapDisplayer(bmp, photoToLoad);
            Activity a=(Activity)photoToLoad.imageView.getContext();
            a.runOnUiThread(bd);
          }
    }
于 2012-12-22T10:18:42.000 に答える
-1

return ステートメントは、関数スコープの残りの実行をスキップします。

読む価値があります:

  1. return: http://docs.oracle.com/javase/tutorial/java/javaOO/returnvalue.html
  2. break: http://docs.oracle.com/javase/tutorial/java/nutsandbolts/branch.html
于 2012-12-22T06:23:37.960 に答える