不可到达的代码:代码执行不到这里。
</pre><pre name="code" class="java"> if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH));
{
Toast.makeText(this, "当前设备没有闪光灯", Toast.LENGTH_LONG).show();
return;
}
<pre name="code" class="java"> if(((Boolean) mImageViewFlashlight.getTag()) == false)
//出现的问题在这里。问题的根源是上面if语句中的return返回后,这里的if--else语句就是废的。
{
openFlashlight();
}
else
{
closeFlashlight();
}
<pre name="code" class="java"> if(((Boolean) mImageViewFlashlight.getTag()) == false)
{
openFlashlight();
}
else
{
closeFlashlight();
}
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH));
{
Toast.makeText(this, "当前设备没有闪光灯", Toast.LENGTH_LONG).show();
return;
}
<pre name="code" class="java"> if(((Boolean) mImageViewFlashlight.getTag()) == false)
{
openFlashlight();
}
else
{
closeFlashlight();
}
if(!getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA_FLASH));
{
Toast.makeText(this, "当前设备没有闪光灯", Toast.LENGTH_LONG).show();
return;
}
可以将测试有没有闪光灯的代码放到后面再返回,事实上逻辑是符合的。
另外维基百科的解释是很靠谱的:
http://en.wikipedia.org/wiki/Unreachable_code