Android问题:Unreachable code

不可到达的代码:代码执行不到这里。

</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

 
 

你可能感兴趣的:(Android问题:Unreachable code)