我需要 Java 中的三元运算符,如果条件为真,它会分配两个变量

发布于 2024-12-13 08:34:30 字数 313 浏览 1 评论 0原文

我已经看到可以使用多个三元条件,但还没有找到一种在单个条件为真时分配两个变量的方法。这是我想写的方法:

    int[] chkNext(int mnd, int y) {  
        int[] date = new int[2];  
        mnd = 12 ? mnd = 1, y++ : mnd++; // returns the following: "error: : expected"
        date[0] = mnd, date[1] = y;  
        return date;  
    }  

I have seen that one can use multiple ternary conditions, but haven't found a way to assign two variables if a single condition is true. This is the method I'm trying to write:

    int[] chkNext(int mnd, int y) {  
        int[] date = new int[2];  
        mnd = 12 ? mnd = 1, y++ : mnd++; // returns the following: "error: : expected"
        date[0] = mnd, date[1] = y;  
        return date;  
    }  

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

呆橘 2024-12-20 08:34:30

只需使用 if 语句即可。

if (mnd == 12) {
//      ^^  very important
  mnd = 1;
  y++;
} else {
  mnd++;
}

这样:

date[0] = mnd, date[1] = y;  

更好的是:

date[0] = mnd; date[1] = y;  

如果您确实不需要逗号运算符,请不要使用它。

Just use an if statement.

if (mnd == 12) {
//      ^^  very important
  mnd = 1;
  y++;
} else {
  mnd++;
}

And this:

date[0] = mnd, date[1] = y;  

Would be better as:

date[0] = mnd; date[1] = y;  

Don't use a comma operator if you don't really need it.

╰ゝ天使的微笑 2024-12-20 08:34:30

三元运算符的构造是错误的,因为“?”之前应该有条件。正如 Mat 所建议的,更好的选择是使用 if 语句。

三元通常可用于简单的语句,例如

boolean isEven = (n!=0 && n%2 == 0) ? true : false;

The construct of ternary operator is wrong as there should be condition before '?'. As Mat suggested better option is using if statement.

Ternary can be generally used for simple statements like

boolean isEven = (n!=0 && n%2 == 0) ? true : false;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文