【问题标题】:If statement in JAVA giving errorJAVA中的if语句给出错误
【发布时间】:2016-03-26 02:27:35
【问题描述】:

这是代码:

public class Demo
{
    public static void main(String[]args)
    {
       if(5>10)                                        
          System.out.println("5>10");
       if(true)         
          System.out.println("true");
       if((3+6)==(3-6))           
          System.out.println("false");
    }
}

输出为 string: true (第二个 if 语句已处理)

我不明白为什么if(true) System.out.println("true"); 会被处理并打印出来是真的。 if 语句中的条件 true 表示无处。我从我的教科书中得到这个代码。 Java中boolean的默认值应该是false,那为什么第二条if可以打印出来呢?

【问题讨论】:

  • 如果if 语句中的语句为真,它将执行代码块。因此,if(true) 将始终为真,因此始终打印为真
  • 这怎么没有意义? true 什么时候不是 true
  • 一个默认的布尔变量可能被初始化为false,但你专门传入了true的值。
  • true 的默认值应该是false ......这是一个非常奇怪的请求,OP。
  • 如果你让它调用System.out.println("false") 那么它不会执行,因为它不匹配。

标签: java


【解决方案1】:

实际上,如果条件(括号中的(条件))中的评估结果为真,则无论条件是什么,都会执行 if 语句。只要条件为真,您就会进入 if-block。并且只要条件为假,就不会进入 if 块。

这就是为什么你的第一个也是最后一个如果:

if(5>10) //false
if((3+6)==(3-6)) //false

永远不会输入,因为它们总是会导致 false(因此也不会打印任何内容)。

话虽如此,虽然没用,但人们也可以在 if 语句中直接将 true 或 false 作为条件:

if(true)

如果它是真或假,它的块将始终执行或不执行。

真正使用“真”作为检查条件通常带有无限循环:

while(true){
  //do something infinitely till break or error
}

但我不认为

 if(true)

有什么实际用处。

【讨论】:

    【解决方案2】:

    我不明白为什么 if(true) System.out.println("true");将被处理并打印出 true。

    您应该真正了解一般条件语句。 Here's one 谈论 IF 声明。

    语法是

    if(Boolean_expression){
       //Executes when the Boolean expression is true
    }else{
       //Executes when the Boolean expression is false
    }
    

    【讨论】:

      【解决方案3】:

      true 这里是boolean。应该是一样的

      boolean first = true;
      boolean second = false;
      if (first) {
          System.out.println("first");
      }
      if (second) {
          System.out.println("second");
      }
      

      这将只输出“first”。

      【讨论】:

      • 这将产生编译错误,因为third 未初始化且不是类成员
      【解决方案4】:

      我不明白为什么 if(true) System.out.println("true");将被处理并打印出真实的。 if 语句中的 condition(true) 指代无处。我从我的教科书中得到这个代码。 Java中boolean的默认值应该是false,那为什么第二条if语句可以打印出来呢?

      其实。你没有在代码中使用variables;有一个booleanliteral,即true。因此,从这个意义上说,Java boolean variable 默认分配什么(字面)值并不重要。

      【讨论】:

        【解决方案5】:

        我认为您将非正式语言与计算混淆了。在非正式的语言中,“真实”本身并不意味着任何东西——某些陈述必须真实的。例如,“1+1=2”是真的,“天空是蓝色的”是真的,但我们永远不会只说“真的”是真的。

        在计算方面你可以。在if之后,你可以写5 > 12 == 9,但你也可以写truefalse

        如果您觉得这很混乱,您可以认为if (true)if (0 == 0) 相同,if (false)if (0 == 1) 相同。

        【讨论】:

          【解决方案6】:

          嗯,你可以在 java 中使用嵌套的 if 或多个 if 语句。

          语法:

          if(condition1)
          {
             // Statement1;
          
             if(condition2)
             {
                // Statement2;
             }
          }
          

          同时参考以下资源以获取java中if else的解释和示例,

          如果在 java 中是这样 - explanation

          如果在 java 中是这样 - example

          【讨论】:

            猜你喜欢
            • 2016-09-10
            • 1970-01-01
            • 2014-05-01
            • 2017-11-21
            • 1970-01-01
            • 2015-01-05
            • 2022-12-08
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多