括号减少

时间:2015-07-10 20:35:08

标签: java

我写了以下内容:

if ( ( ( weight < 160 && ( age <= 27 && age >= 22 ) )
    && ( ( height < 72 ) && ( ( !isASmoker ) && ( isMale ) ) )
    && ( ( isGoodLooking ) && ( isAbleToRelocate) ) ) ) {

我可以减少括号吗?

由于

2 个答案:

答案 0 :(得分:3)

正如Turing85's comment中所述,您实际上可以删除除外部括号之外的所有括号

if  (weight < 160 && age <= 27 && age >= 22 
        && height < 72 &&   !isASmoker  &&  isMale   
        &&   isGoodLooking  &&  isAbleToRelocate  )

这是您可以使用的最小数量的parethesis。最大数量是......好吧,实际上是无限的(有限数,显然,但无限可能)。你可以添加任意多个,只要它在正确的情况下。

答案 1 :(得分:1)

如果您正确理解了java运算符的优先级,那么这可以减少到最小括号:

private async void RecAntiqueFilter_Tapped(object sender, DoubleTappedRoutedEventArgs e)
    {
        var imageStream = new BitmapImageSource(originalBitmap.AsBitmap());
        using (var effect = new FilterEffect(imageStream))
        {
            var filter = new AntiqueFilter();
            effect.Filters = new[] { filter };

            // Render the image to a WriteableBitmap.
            var renderer = new WriteableBitmapRenderer(effect, originalBitmap);
            editedBitmap = await renderer.RenderAsync();
            editedBitmap.Invalidate();
        }

        Image.Source = editedBitmap;
    }

有关详情,请参阅this

编辑: - 实际上,如果您考虑条件是&#39;和&#39;如果第一个为真,操作员检查下一个条件,这可以在逻辑上进一步减少到

if ( ( weight < 160 && ( age <= 27 && age >= 22 ) )
&& (  height < 72  &&  !isASmoker  &&  isMale )
&& (  isGoodLooking  &&  isAbleToRelocate ) ) {