마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

break label; 질문입니다 왜 이부분이 에러인가요?

0 추천
 
public class MainActivity
        extends Activity
{
    TextView CountText;
    Button btnStopService;
    boolean flag = true;
    Intent intentMyService;
    BroadcastReceiver receiver;
    String serviceData;
    Toast toast;
    boolean bool1;
    boolean bool2;
 
 
    public void onCreate(Bundle paramBundle)
    {
        super.onCreate(paramBundle);
        setContentView(R.layout.activity_main);
        this.intentMyService = new Intent(this, MyServiceIntent.class);
        this.receiver = new MyMainLocalRecever();
        this.CountText = ((TextView)findViewById(R.id.textCount));
        this.btnStopService = ((Button)findViewById(R.id.btn_test));
        this.btnStopService.setOnClickListener(new View.OnClickListener()
        {
            public void onClick(View paramAnonymousView)
            {
                if (MainActivity.this.flag) {
                    //MainActivity.this.btnStopService.setText("만보기 중지");
                }
                for (;;)
                {
                    try
                    {
                        IntentFilter localIntentFilter = new IntentFilter("androy.");
                        MainActivity.this.registerReceiver(MainActivity.this.receiver, localIntentFilter);
                        MainActivity.this.startService(MainActivity.this.intentMyService);
                        Toast.makeText(MainActivity.this.getApplicationContext(), "start", Toast.LENGTH_SHORT).show();
                        MainActivity localMainActivity = MainActivity.this;
                        bool1 = MainActivity.this.flag;
                        bool2 = false;
                        if (!bool1) break label
 
                        localMainActivity.flag = bool2;
                        return;
                    }
                    catch (Exception localException2)
                    {
                        Toast.makeText(MainActivity.this.getApplicationContext(), localException2.getMessage(), Toast.LENGTH_SHORT).show();
                        continue;
                    }
                    //MainActivity.this.btnStopService.setText("Go !!");
                    try
                    {
                        MainActivity.this.unregisterReceiver(MainActivity.this.receiver);
                        MainActivity.this.stopService(MainActivity.this.intentMyService);
                        Toast.makeText(MainActivity.this.getApplicationContext(), "stop", Toast.LENGTH_SHORT).show();
                    }
                    catch (Exception localException1)
                    {
                        Toast.makeText(MainActivity.this.getApplicationContext(), localException1.getMessage(), Toast.LENGTH_SHORT).show();
                    }
                    continue;
                    label:
                    bool2 = true;
                }
            }
        });
    }
 
    class MyMainLocalRecever
            extends BroadcastReceiver
    {
        MyMainLocalRecever() {}
 
        public void onReceive(Context paramContext, Intent paramIntent)
        {
            MainActivity.this.serviceData = paramIntent.getStringExtra("serviceData");
            MainActivity.this.CountText.setText(MainActivity.this.serviceData);
            //Log.d("COUNT", MainActivity.this.serviceData);
            Toast.makeText(MainActivity.this.getApplicationContext(), "walking", Toast.LENGTH_SHORT).show();
        }
    }
}
 
 
 
 
 
이런 소스를 구하게 되서 공부 중인데 저 부분이 빨간줄이 그어진 이유를 모르겠습니다
 
뭐가 문제일까요?...ㅠㅠ
 
 
네넨에넹 (940 포인트) 님이 2015년 4월 8일 질문

1개의 답변

0 추천
 
채택된 답변

break 는 반복문을 빠져나오는 역할을 합니다.

이 소스에서 반복문은 for(;;) 인데, if (!bool1) break label; 과 label: 모두 for 안에 있습니다.

마치 goto 처럼 사용하셨네요.

if (!bool1) {

bool2 = true;

continue;

}

가 더 적합할 겁니다.

JINASYS (5,630 포인트) 님이 2015년 4월 8일 답변
네넨에넹님이 2015년 4월 10일 채택됨
...