该方法不能包含if
或loop
。如果一个数字包含在一个区间中,它将返回true
。它适用于[1,6] ......但是我如何解决这个问题呢?它可以用于开放(1,6)或间隔,如[1,6] ??'
我希望它能够使用(1,3)(1,3)[1,3]和[1,3]返回所有场景,但是没有if语句。我怎么能做一个return语句才能返回这些场景
答案 0 :(得分:0)
删除等号(=)。像那样:
return (n > leftNumber && n < rightNumber);
您可以修改其他情况(例如[1,6]和(1,6 []
)答案 1 :(得分:0)
如果您想要工作间隔0dp
<android.support.v7.widget.CardView
:
: >
<RelativeLayout
:
: >
<LinearLayout
android:id="@+id/toolbarBack"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/rlDetailLayoutBack"
android:layout_marginTop="4dp"
android:layout_centerHorizontal="true"
android:gravity="center"
android:weightSum="4">
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabDirections"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/directions1"
android:borderWidth="0dp"
android:elevation="8dp"
android:layout_weight="1"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabCallMobile"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/mobile"
android:borderWidth="0dp"
android:elevation="0dp"
android:layout_weight="1"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabCallLandline"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/landline"
android:borderWidth="0dp"
android:elevation="0dp"
android:layout_weight="1"/>
<android.support.design.widget.FloatingActionButton
android:id="@+id/fabWebsite"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:src="@drawable/website1"
android:borderWidth="0dp"
android:elevation="0dp"
android:layout_weight="1"/>
</LinearLayout>
:
:
</RelativeLayout>
</android.support.v7.widgetCardView>
对于[1,6)
,可以修改return语句,如下所示
return (n >= leftNum && n < rightNum);
答案 2 :(得分:0)
您需要一个类来定义比较每一侧所需的间隔类型。我会使用枚举:
public enum Interval {
CLOSED, OPEN;
}
然后,您将方法声明重新定义为:
public boolean contains(double number, Interval left, Interval right)
并使用三元运算符重新定义return语句以返回所需的布尔值。
答案 3 :(得分:0)
考虑到你的限制,我能想到的唯一方法是添加一个间接级别。您的contains方法需要进行某种间隔计算:
boolean contains(double number, Interval interval) {
double leftNum = this.getLeftEndPoint();
double rightNum = this.getRightEndPoint();
return interval.check(leftNum, number, rightNum);
}
然后创建所需的四个间隔对象:
class ClosedInterval implements Interval {
@Override
boolean check(double lowerBound, double value, double upperBound) {
return (lowerBound <= value) && (value <= upperBound);
}
}
class LowerHalfOpenInterval implements Interval {
@Override
boolean check(double lowerBound, double value, double upperBound) {
return (lowerBound < value) && (value <= upperBound);
}
}
etc...
但是,对于手头的问题,这似乎是不必要的复杂。您也可以为要处理的各种包含变体定义单独的方法。