“ break”和“ continue”仅允许在循环内-Kotlin

时间:2019-07-11 07:46:22

标签: kotlin break

带有星型代码的标记行在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)
}

4 个答案:

答案 0 :(得分:0)

根据您提供的代码,没有循环发生,因此不会出错。

break;仅在while do whilefor循环中有效,这会使您的程序退出循环的底部而不执行其中的任何其他代码。

按照我认为您想做的事情,您应该将休息时间替换为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)

但是您想打破什么? 如果是陈述,方法,整个过程?

continiuebreak语句均创建为在循环中使用。 break语句用于退出循环(没有更多的课程)。 continue语句还可以在循环中使用以处理下一个循环过程。

如果要从整个方法中途完成,请使用return <value>。 您还可以引发异常(并在其他框架中处理)-> throw Exception("msg")

答案 3 :(得分:0)

问题在于代码中不存在任何循环,因此添加breakcontinue没有意义。您的代码中仅具有条件语句,例如ifelse if,而在代码中没有诸如forwhiledo while等的循环。 breakcontinue仅在循环中起作用。