如何使用?:java中缺少一个条件的运算符?

如何使用?:java中缺少一个条件的运算符?,java,conditional-operator,Java,Conditional Operator,我想简化这段代码: ++ index; if(index > max) index = 0; 我试着这样写: ++index > max ? : index = 0; //java compile failed 怎么做?我想你想要实现的就是三元运算符。有无数的文章解释了这一点,通过简单的谷歌搜索很容易找到。这里有一个来自Geeksforgeks: 无论如何,这是用来设置变量的。您评估条件,如果为真,您的变量将是第一个选项,如果为假,您的变量将是第二个选项。我不确定我在这里

我想简化这段代码:

++ index;
if(index > max)
  index = 0;
我试着这样写:

++index > max ?   : index = 0; //java compile failed

怎么做?

我想你想要实现的就是三元运算符。有无数的文章解释了这一点,通过简单的谷歌搜索很容易找到。这里有一个来自Geeksforgeks:

无论如何,这是用来设置变量的。您评估条件,如果为真,您的变量将是第一个选项,如果为假,您的变量将是第二个选项。我不确定我在这里说的是否有道理

index = ++index > max ? 0 : index
本质上,这是在问:是++索引>最大值吗?如果是,索引=0,否则索引=索引

虽然我不确定java中的++索引是否会在求值之前递增,但如果不递增,只需在执行三元运算符之前递增即可


希望这有帮助。

index=(index>max)?0:指数;但是,如果用这种方式编写它有困难,为什么要重构它呢?代码按原样工作,你想实现什么<代码>?:生成一个表达式。我只是想把3行减为一行,有很多索引需要处理。如果你经常这样做,那么创建一个(私有)助手方法也是一个选择。对,它很有效。尽管假条件赋值是多余的。我想知道C++中的完美可以完成吗?“错误条件赋值是多余的”,不,不是。如果没有这个假条件赋值,你就不能使用三元运算符。你确实需要这个假条件,否则你可能会得到一个语法错误。如果您想消除错误条件,您可以做一个类似这样的单行程序:
If(++index>max)index=0我认为这可能在java中也适用。