【问题标题】:java variable assigned with multiple values [closed]分配有多个值的java变量[关闭]
【发布时间】:2020-06-27 11:05:01
【问题描述】:

我在 Java (question 15 here) 中看到了一些问题,打印 f 的值给出的值为 false

  boolean f = false,b;
  System.out.println(f); // prints false

但是使用两个数值会出错: 诠释 x= 5,1; System.out.println(x);

反转分配也给了我一个错误

boolean x = b,true;

A.java:7: error: <identifier> expected

但是boolean x = true,b; 打印出x 的值是真的!

有人能解释一下代码是如何工作的吗?

【问题讨论】:

  • “我在java中看到了一些问题”你能链接到那个问题吗?
  • 见问题 15
  • "解释代码是如何工作的" 工作的代码在哪里?这里的所有示例都有一些错误或其他
  • Joni 只需声明类名和主方法并编写两个语句 boolean f = false,b 和 boolean x = b ,true 并打印出来

标签: java


【解决方案1】:

我认为您可能在心理上错误地解析了代码。

boolean f = false,b; 表示:

声明一个布尔变量f,用false初始化它,然后声明另一个布尔变量b

这并不意味着:

声明一个布尔变量f,用false,b初始化它

...无论false,b 是什么意思...

所以int x= 5,1; 不起作用,因为1 不是有效的变量名。编译器认为您正在尝试声明另一个名为 1 的变量。

boolean x = b,true; 不起作用,因为 b,应该是 x 的初始值,没有定义。

我添加了一些空格来帮助你解析这个语法:

boolean     f = false,      b;

【讨论】:

    【解决方案2】:

    变量声明分三部分

    1. 变量类型

    2. 变量名

    3. 初始值

      [原始类型] [原始名称] = [初始化值]

    例如:

     int totalQuantity = 100;
     int orderQuantity = 20;
    

    第三部分通常是可选的。

    还有另一种方法可以在单个语句中声明多个属性,用逗号 (,) 分隔,而语句以分号 (;) 结束

    int totalQuantity =100, orderQuantity =20;
    

    现在你的问题

    案例1

    boolean f = false,b;
    

    有两个变量声明为布尔类型的名称 f 和 b,f 初始化为 false,这是完全正确的。

    案例2

    boolean x = b,true;
    

    这里有两个变量是x和true,x在这里用b初始化

    • x 是有效的,而变量名 true 根据规则是无效的名称
    • 在初始化x = b 时,b 是未定义的。如果您首先声明案例 1,则 x 通过其默认值用 b 初始化

    【讨论】:

      【解决方案3】:

      没错,正如@Sweeper 解释的那样...... 如果您也尝试打印变量 b,则从 boolean f = false,b ,编译器会警告你的原因

      【讨论】:

      • 不一定。由于默认初始化,b 的值为 false。
      • 正确,如果不在方法级别
      猜你喜欢
      • 2016-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-12
      相关资源
      最近更新 更多