【问题标题】:Java - Assigning variable in ternary operator - unexpected type errorJava - 在三元运算符中分配变量 - 意外的类型错误
【发布时间】:2021-06-22 15:53:31
【问题描述】:

我对编码和 Java 比较陌生。我正在尝试使用三元运算符代替我的一些“if”语句。 当我将下面的代码编写为 if/else 时,它​​工作正常,但是当我按原样运行它时,我得到了

unexpected type
required: variable
found:    value line:3

你不能通过三元赋值,还是我做错了?提前致谢!

  int front;
  nums.length>4 ? front = 4 : front = nums.length;

【问题讨论】:

  • 你的意思是front = nums.length>4 ? 4 : nums.length;
  • 你能写下你想表达的东西吗?或者给一个经典的 if/else
  • @Amongalen 谢谢!这确实是我的意图,但误解了逻辑。我得稍微消化一下这个语法。

标签: java variable-assignment conditional-operator


【解决方案1】:

在 Java 中,三元运算符是一个“赋值”运算符,这意味着“总是”运算的结果必须赋值给一个变量。
目标变量在符号“=”的左侧(像往常一样),而运算符在右侧。 正如你所说,它只是作为 if/else 工作。结构是这样的:

<destination_variable> = <condition> ? <value_if_cond_true> : <value_else>

因此,在您的具体情况下,三元运算符将编写如下:

int front = nums.length > 4 ? 4 : nums.length;

【讨论】:

    猜你喜欢
    • 2014-10-03
    • 2020-12-31
    • 2016-03-30
    • 1970-01-01
    • 2016-11-07
    • 2011-09-10
    • 2017-09-25
    相关资源
    最近更新 更多