有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

奇怪的JAVA布尔计算问题

嗨,我有以下代码:

  boolean result = someexpression();

            if(!result)
            {
            System.out.println("False..."); 
            }
            if (result); 
            {
                System.out.println("True");
            }

它同时打印(假和真) 我也试过使用类似的东西

     if(result==true)

但这似乎并不奏效。无论变量的值是多少,它都只是进入条件。??我使用的是eclipse,这只发生在特定的部分


共 (2) 个答案

  1. # 1 楼答案

    if (result); 
    

    删除此行末尾的;

    对于;,它的意思是“如果resulttrue,那么什么也不做”。包含下一条语句的块不是if的一部分,将始终被执行。与此完全相同:

    if (result)   // if result is true
        ;         // then do nothing
    
    System.out.println("True");  // is always executed
    
  2. # 2 楼答案

    在if语句的末尾有一个冒号

    if (result);
    

    这会使代码的计算结果更精确

    if (result) {
    
    }
    {
        System.out.println("True");
    }
    

    其中,第二对{}表示始终执行的代码块,因为它不再是if控制块的一部分。所以去掉那个分号(我想这不是你想放的)