带有星型代码的标记行在When循环中出现故障。
错误说明:“ break”和“ continue”仅在循环内允许。
请帮助我,谢谢
如何实施解决方案?
if (mOpenedItems.size == 0) break //*****************ERROR************
// Disallow our parent Views to intercept the touch events so long as there is
// at least one item view in the open or being closed state.
requestParentDisallowInterceptTouchEvent()
if (mFullyOpenedItem != null) {
mHasItemFullyOpenOnActionDown = true
if (mActiveItem === mFullyOpenedItem) {
resolveActiveItemMenuBounds()
// If the user's finger downs on the completely opened itemView's menu area,
// do not intercept the subsequent touch events (ACTION_MOVE, ACTION_UP, etc.)
// as we receive the ACTION_DOWN event.
// If the user's finger downs on the fully opened itemView but not on
// its menu, then we need to intercept them.
if (mActiveItemMenuBounds.contains(mDownX, mDownY)) {
break //**************************ERROR***************
} else if (mActiveItemBounds.contains(mDownX, mDownY)) {
return true
}
}
// If 1) the fully opened itemView is not the current one or 2) the user's
// finger downs outside of the area in which this view displays the itemViews,
// make the itemView's menu hidden and intercept the subsequent touch events.
releaseItemViewInternal(mFullyOpenedItem, itemScrollDuration)
}
答案 0 :(得分:0)
根据您提供的代码,没有循环发生,因此不会出错。
break;
仅在while
do while
和for
循环中有效,这会使您的程序退出循环的底部而不执行其中的任何其他代码。
按照我认为您想做的事情,您应该将休息时间替换为return false
。尽管由于您提供的示例功能不完整,我很容易错了。
https://www.tutorialspoint.com/cplusplus/cpp_break_statement.htm
答案 1 :(得分:0)
问题解决了。
when (e.action) {
MotionEvent.ACTION_DOWN -> run {
和
if (mOpenedItems.size == 0) return@run
答案 2 :(得分:0)
但是您想打破什么? 如果是陈述,方法,整个过程?
continiue
和break
语句均创建为在循环中使用。
break
语句用于退出循环(没有更多的课程)。
continue
语句还可以在循环中使用以处理下一个循环过程。
如果要从整个方法中途完成,请使用return <value>
。
您还可以引发异常(并在其他框架中处理)-> throw Exception("msg")
。
答案 3 :(得分:0)
问题在于代码中不存在任何循环,因此添加break
或continue
没有意义。您的代码中仅具有条件语句,例如if
和else if
,而在代码中没有诸如for
,while
,do while
等的循环。 break
和continue
仅在循环中起作用。