java android:if(); 不要引起任何禁令

Rik*_*avi 1 java syntax android if-statement

我看到了奇怪的情况:在我的Android应用程序代码中使用类似这样的东西时我没有收到任何错误:

@Override
public void onBackPressed() {

        if (getActionBar().getSelectedTab().getPosition()==1)**;**
        {
            if ( getFragmentManager().findFragmentByTag("Tag B") instanceof ContactsArchiveFragment)
            {
                    final ContactsArchiveFragment fragment = (ContactsArchiveFragment) getFragmentManager().findFragmentByTag("Tag B");

                if (fragment.allowBackPressed()) { // and then you define a method allowBackPressed with the logic to allow back pressed or not

                    Log.i("calls act back cont archive", "on back clicked");
                    super.onBackPressed();
                }
            }

        }

}
Run Code Online (Sandbox Code Playgroud)

当我试图做这样的事情:

    @Override
public void onBackPressed() {

        if (getActionBar().getSelectedTab().getPosition()==1);
        {
            if ( getFragmentManager().findFragmentByTag("Tag B") instanceof ContactsArchiveFragment)
            {
                    final ContactsArchiveFragment fragment = (ContactsArchiveFragment) getFragmentManager().findFragmentByTag("Tag B");

                if (fragment.allowBackPressed()) { // and then you define a method allowBackPressed with the logic to allow back pressed or not

                    Log.i("calls act back cont archive", "on back clicked");
                    super.onBackPressed();
                }
            }

        }
        else
        {

        }

}
Run Code Online (Sandbox Code Playgroud)

我收到了Syntax error on token "else", delete this token.当我看到半音时,我解除了问题所在.但这让我很难过,有人能解释一下它是什么吗?

Jon*_*eet 7

但这让我很难过,有人能解释一下它是什么吗?

当然 - 这;只是一个空洞的陈述,没有一个块也没关系if.例如,这是有效的:

if (i == 0)
    System.out.println("i was 0");

System.out.println("In top-level block");

{
    System.out.println("In a block");
}
Run Code Online (Sandbox Code Playgroud)

...和之后的分号if相当于第一个if带有空体的语句.

我个人总是使用括号来if表示语句(和while语句等).一些编译器(例如Eclipse中内置的编译器)允许您在使用这样的空语句时发出警告或错误.

else表单无效,因为您只能将一个else子句作为if/ elsestatement的一部分,而该if语句已在分号结尾处"完成".